提交 e9b7fd4d 编写于 作者: J Jan Schmidt

Btrfs: add tree_mod_dont_log helper

Replace duplicate code by small inline helper function.
Signed-off-by: NJan Schmidt <list.btrfs@jan-o-sch.net>
上级 926dd8a6
......@@ -455,14 +455,25 @@ __tree_mod_log_insert(struct btrfs_fs_info *fs_info, struct tree_mod_elem *tm)
return ret;
}
static inline int tree_mod_dont_log(struct btrfs_fs_info *fs_info,
struct extent_buffer *eb) {
smp_mb();
if (list_empty(&(fs_info)->tree_mod_seq_list))
return 1;
if (!eb)
return 0;
if (btrfs_header_level(eb) == 0)
return 1;
return 0;
}
static inline int tree_mod_alloc(struct btrfs_fs_info *fs_info, gfp_t flags,
struct tree_mod_elem **tm_ret)
{
struct tree_mod_elem *tm;
int seq;
smp_mb();
if (list_empty(&fs_info->tree_mod_seq_list))
if (tree_mod_dont_log(fs_info, NULL))
return 0;
tm = *tm_ret = kzalloc(sizeof(*tm), flags);
......@@ -643,8 +654,7 @@ tree_mod_log_eb_copy(struct btrfs_fs_info *fs_info, struct extent_buffer *dst,
int ret;
int i;
smp_mb();
if (list_empty(&fs_info->tree_mod_seq_list))
if (tree_mod_dont_log(fs_info, NULL))
return;
if (btrfs_header_level(dst) == 0 && btrfs_header_level(src) == 0)
......@@ -691,11 +701,7 @@ static void tree_mod_log_free_eb(struct btrfs_fs_info *fs_info,
int ret;
u32 nritems;
smp_mb();
if (list_empty(&fs_info->tree_mod_seq_list))
return;
if (btrfs_header_level(eb) == 0)
if (tree_mod_dont_log(fs_info, eb))
return;
nritems = btrfs_header_nritems(eb);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册