Btrfs: add tree_mod_dont_log helper
Replace duplicate code by small inline helper function. Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
This commit is contained in:
Родитель
926dd8a640
Коммит
e9b7fd4d8b
|
@ -455,14 +455,25 @@ unlock:
|
||||||
return ret;
|
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,
|
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_ret)
|
||||||
{
|
{
|
||||||
struct tree_mod_elem *tm;
|
struct tree_mod_elem *tm;
|
||||||
int seq;
|
int seq;
|
||||||
|
|
||||||
smp_mb();
|
if (tree_mod_dont_log(fs_info, NULL))
|
||||||
if (list_empty(&fs_info->tree_mod_seq_list))
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
tm = *tm_ret = kzalloc(sizeof(*tm), flags);
|
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 ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
smp_mb();
|
if (tree_mod_dont_log(fs_info, NULL))
|
||||||
if (list_empty(&fs_info->tree_mod_seq_list))
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (btrfs_header_level(dst) == 0 && btrfs_header_level(src) == 0)
|
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;
|
int ret;
|
||||||
u32 nritems;
|
u32 nritems;
|
||||||
|
|
||||||
smp_mb();
|
if (tree_mod_dont_log(fs_info, eb))
|
||||||
if (list_empty(&fs_info->tree_mod_seq_list))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (btrfs_header_level(eb) == 0)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
nritems = btrfs_header_nritems(eb);
|
nritems = btrfs_header_nritems(eb);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче