Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
0da5468f
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0da5468f
编写于
11月 07, 2007
作者:
C
Chris Mason
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Btrfs: Use writepages for the metadata too
Signed-off-by:
N
Chris Mason
<
chris.mason@oracle.com
>
上级
008630c1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
3 deletion
+26
-3
fs/btrfs/disk-io.c
fs/btrfs/disk-io.c
+26
-3
未找到文件。
fs/btrfs/disk-io.c
浏览文件 @
0da5468f
...
...
@@ -43,6 +43,8 @@ static int check_tree_block(struct btrfs_root *root, struct extent_buffer *buf)
}
#endif
static
struct
extent_map_ops
btree_extent_map_ops
;
struct
extent_buffer
*
btrfs_find_tree_block
(
struct
btrfs_root
*
root
,
u64
bytenr
,
u32
blocksize
)
{
...
...
@@ -188,15 +190,29 @@ int csum_dirty_buffer(struct btrfs_root *root, struct page *page)
return
0
;
}
static
int
btree_writepage
(
struct
page
*
page
,
struct
writeback_control
*
wbc
)
static
int
btree_writepage
_io_hook
(
struct
page
*
page
,
u64
start
,
u64
end
)
{
struct
extent_map_tree
*
tree
;
struct
btrfs_root
*
root
=
BTRFS_I
(
page
->
mapping
->
host
)
->
root
;
tree
=
&
BTRFS_I
(
page
->
mapping
->
host
)
->
extent_tree
;
csum_dirty_buffer
(
root
,
page
);
return
0
;
}
static
int
btree_writepage
(
struct
page
*
page
,
struct
writeback_control
*
wbc
)
{
struct
extent_map_tree
*
tree
;
tree
=
&
BTRFS_I
(
page
->
mapping
->
host
)
->
extent_tree
;
return
extent_write_full_page
(
tree
,
page
,
btree_get_extent
,
wbc
);
}
static
int
btree_writepages
(
struct
address_space
*
mapping
,
struct
writeback_control
*
wbc
)
{
struct
extent_map_tree
*
tree
;
tree
=
&
BTRFS_I
(
mapping
->
host
)
->
extent_tree
;
return
extent_writepages
(
tree
,
mapping
,
btree_get_extent
,
wbc
);
}
int
btree_readpage
(
struct
file
*
file
,
struct
page
*
page
)
{
struct
extent_map_tree
*
tree
;
...
...
@@ -251,6 +267,7 @@ static int btree_writepage(struct page *page, struct writeback_control *wbc)
static
struct
address_space_operations
btree_aops
=
{
.
readpage
=
btree_readpage
,
.
writepage
=
btree_writepage
,
.
writepages
=
btree_writepages
,
.
releasepage
=
btree_releasepage
,
.
invalidatepage
=
btree_invalidatepage
,
.
sync_page
=
block_sync_page
,
...
...
@@ -538,6 +555,8 @@ struct btrfs_root *open_ctree(struct super_block *sb)
extent_map_tree_init
(
&
BTRFS_I
(
fs_info
->
btree_inode
)
->
extent_tree
,
fs_info
->
btree_inode
->
i_mapping
,
GFP_NOFS
);
BTRFS_I
(
fs_info
->
btree_inode
)
->
extent_tree
.
ops
=
&
btree_extent_map_ops
;
extent_map_tree_init
(
&
fs_info
->
free_space_cache
,
fs_info
->
btree_inode
->
i_mapping
,
GFP_NOFS
);
extent_map_tree_init
(
&
fs_info
->
block_group_cache
,
...
...
@@ -832,3 +851,7 @@ int btrfs_read_buffer(struct extent_buffer *buf)
return
read_extent_buffer_pages
(
&
BTRFS_I
(
btree_inode
)
->
extent_tree
,
buf
,
0
,
1
);
}
static
struct
extent_map_ops
btree_extent_map_ops
=
{
.
writepage_io_hook
=
btree_writepage_io_hook
,
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录