Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
21ad10cf
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
21ad10cf
编写于
1月 09, 2008
作者:
C
Chris Mason
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Btrfs: Add flush barriers on commit
Signed-off-by:
N
Chris Mason
<
chris.mason@oracle.com
>
上级
bcd987fe
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
16 addition
and
3 deletion
+16
-3
fs/btrfs/ctree.h
fs/btrfs/ctree.h
+3
-2
fs/btrfs/disk-io.c
fs/btrfs/disk-io.c
+5
-0
fs/btrfs/super.c
fs/btrfs/super.c
+8
-1
未找到文件。
fs/btrfs/ctree.h
浏览文件 @
21ad10cf
...
...
@@ -440,8 +440,9 @@ struct btrfs_root {
*/
#define BTRFS_STRING_ITEM_KEY 253
#define BTRFS_MOUNT_NODATASUM 0x1
#define BTRFS_MOUNT_NODATACOW 0x2
#define BTRFS_MOUNT_NODATASUM (1 << 0)
#define BTRFS_MOUNT_NODATACOW (1 << 1)
#define BTRFS_MOUNT_NOBARRIER (1 << 2)
#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
...
...
fs/btrfs/disk-io.c
浏览文件 @
21ad10cf
...
...
@@ -762,10 +762,15 @@ int write_ctree_super(struct btrfs_trans_handle *trans, struct btrfs_root
int
ret
;
struct
extent_buffer
*
super
=
root
->
fs_info
->
sb_buffer
;
struct
inode
*
btree_inode
=
root
->
fs_info
->
btree_inode
;
struct
super_block
*
sb
=
root
->
fs_info
->
sb
;
if
(
!
btrfs_test_opt
(
root
,
NOBARRIER
))
blkdev_issue_flush
(
sb
->
s_bdev
,
NULL
);
set_extent_buffer_dirty
(
&
BTRFS_I
(
btree_inode
)
->
extent_tree
,
super
);
ret
=
sync_page_range_nolock
(
btree_inode
,
btree_inode
->
i_mapping
,
super
->
start
,
super
->
len
);
if
(
!
btrfs_test_opt
(
root
,
NOBARRIER
))
blkdev_issue_flush
(
sb
->
s_bdev
,
NULL
);
return
ret
;
}
...
...
fs/btrfs/super.c
浏览文件 @
21ad10cf
...
...
@@ -64,13 +64,14 @@ static void btrfs_put_super (struct super_block * sb)
enum
{
Opt_subvol
,
Opt_nodatasum
,
Opt_nodatacow
,
Opt_max_extent
,
Opt_alloc_start
,
Opt_err
,
Opt_alloc_start
,
Opt_
nobarrier
,
Opt_
err
,
};
static
match_table_t
tokens
=
{
{
Opt_subvol
,
"subvol=%s"
},
{
Opt_nodatasum
,
"nodatasum"
},
{
Opt_nodatacow
,
"nodatacow"
},
{
Opt_nobarrier
,
"nobarrier"
},
{
Opt_max_extent
,
"max_extent=%s"
},
{
Opt_alloc_start
,
"alloc_start=%s"
},
{
Opt_err
,
NULL
}
...
...
@@ -148,6 +149,12 @@ static int parse_options (char * options,
btrfs_set_opt
(
info
->
mount_opt
,
NODATASUM
);
}
break
;
case
Opt_nobarrier
:
if
(
info
)
{
printk
(
"btrfs: turning off barriers
\n
"
);
btrfs_set_opt
(
info
->
mount_opt
,
NOBARRIER
);
}
break
;
case
Opt_max_extent
:
if
(
info
)
{
char
*
num
=
match_strdup
(
&
args
[
0
]);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录