Commit 33cff222 authored by Filipe Manana's avatar Filipe Manana Committed by David Sterba

btrfs: remove gfp_t flag from btrfs_tree_mod_log_insert_key()

All callers of btrfs_tree_mod_log_insert_key() are now passing a GFP_NOFS
flag to it, so remove the flag from it and from alloc_tree_mod_elem() and
use it directly within alloc_tree_mod_elem().
Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 879b2221
...@@ -489,7 +489,7 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans, ...@@ -489,7 +489,7 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
} else { } else {
WARN_ON(trans->transid != btrfs_header_generation(parent)); WARN_ON(trans->transid != btrfs_header_generation(parent));
btrfs_tree_mod_log_insert_key(parent, parent_slot, btrfs_tree_mod_log_insert_key(parent, parent_slot,
BTRFS_MOD_LOG_KEY_REPLACE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REPLACE);
btrfs_set_node_blockptr(parent, parent_slot, btrfs_set_node_blockptr(parent, parent_slot,
cow->start); cow->start);
btrfs_set_node_ptr_generation(parent, parent_slot, btrfs_set_node_ptr_generation(parent, parent_slot,
...@@ -1018,7 +1018,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans, ...@@ -1018,7 +1018,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
struct btrfs_disk_key right_key; struct btrfs_disk_key right_key;
btrfs_node_key(right, &right_key, 0); btrfs_node_key(right, &right_key, 0);
ret = btrfs_tree_mod_log_insert_key(parent, pslot + 1, ret = btrfs_tree_mod_log_insert_key(parent, pslot + 1,
BTRFS_MOD_LOG_KEY_REPLACE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REPLACE);
BUG_ON(ret < 0); BUG_ON(ret < 0);
btrfs_set_node_key(parent, &right_key, pslot + 1); btrfs_set_node_key(parent, &right_key, pslot + 1);
btrfs_mark_buffer_dirty(parent); btrfs_mark_buffer_dirty(parent);
...@@ -1064,7 +1064,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans, ...@@ -1064,7 +1064,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
struct btrfs_disk_key mid_key; struct btrfs_disk_key mid_key;
btrfs_node_key(mid, &mid_key, 0); btrfs_node_key(mid, &mid_key, 0);
ret = btrfs_tree_mod_log_insert_key(parent, pslot, ret = btrfs_tree_mod_log_insert_key(parent, pslot,
BTRFS_MOD_LOG_KEY_REPLACE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REPLACE);
BUG_ON(ret < 0); BUG_ON(ret < 0);
btrfs_set_node_key(parent, &mid_key, pslot); btrfs_set_node_key(parent, &mid_key, pslot);
btrfs_mark_buffer_dirty(parent); btrfs_mark_buffer_dirty(parent);
...@@ -1166,7 +1166,7 @@ static noinline int push_nodes_for_insert(struct btrfs_trans_handle *trans, ...@@ -1166,7 +1166,7 @@ static noinline int push_nodes_for_insert(struct btrfs_trans_handle *trans,
orig_slot += left_nr; orig_slot += left_nr;
btrfs_node_key(mid, &disk_key, 0); btrfs_node_key(mid, &disk_key, 0);
ret = btrfs_tree_mod_log_insert_key(parent, pslot, ret = btrfs_tree_mod_log_insert_key(parent, pslot,
BTRFS_MOD_LOG_KEY_REPLACE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REPLACE);
BUG_ON(ret < 0); BUG_ON(ret < 0);
btrfs_set_node_key(parent, &disk_key, pslot); btrfs_set_node_key(parent, &disk_key, pslot);
btrfs_mark_buffer_dirty(parent); btrfs_mark_buffer_dirty(parent);
...@@ -1220,7 +1220,7 @@ static noinline int push_nodes_for_insert(struct btrfs_trans_handle *trans, ...@@ -1220,7 +1220,7 @@ static noinline int push_nodes_for_insert(struct btrfs_trans_handle *trans,
btrfs_node_key(right, &disk_key, 0); btrfs_node_key(right, &disk_key, 0);
ret = btrfs_tree_mod_log_insert_key(parent, pslot + 1, ret = btrfs_tree_mod_log_insert_key(parent, pslot + 1,
BTRFS_MOD_LOG_KEY_REPLACE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REPLACE);
BUG_ON(ret < 0); BUG_ON(ret < 0);
btrfs_set_node_key(parent, &disk_key, pslot + 1); btrfs_set_node_key(parent, &disk_key, pslot + 1);
btrfs_mark_buffer_dirty(parent); btrfs_mark_buffer_dirty(parent);
...@@ -2418,7 +2418,7 @@ static void fixup_low_keys(struct btrfs_path *path, ...@@ -2418,7 +2418,7 @@ static void fixup_low_keys(struct btrfs_path *path,
break; break;
t = path->nodes[i]; t = path->nodes[i];
ret = btrfs_tree_mod_log_insert_key(t, tslot, ret = btrfs_tree_mod_log_insert_key(t, tslot,
BTRFS_MOD_LOG_KEY_REPLACE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REPLACE);
BUG_ON(ret < 0); BUG_ON(ret < 0);
btrfs_set_node_key(t, key, tslot); btrfs_set_node_key(t, key, tslot);
btrfs_mark_buffer_dirty(path->nodes[i]); btrfs_mark_buffer_dirty(path->nodes[i]);
...@@ -2779,7 +2779,7 @@ static void insert_ptr(struct btrfs_trans_handle *trans, ...@@ -2779,7 +2779,7 @@ static void insert_ptr(struct btrfs_trans_handle *trans,
} }
if (level) { if (level) {
ret = btrfs_tree_mod_log_insert_key(lower, slot, ret = btrfs_tree_mod_log_insert_key(lower, slot,
BTRFS_MOD_LOG_KEY_ADD, GFP_NOFS); BTRFS_MOD_LOG_KEY_ADD);
BUG_ON(ret < 0); BUG_ON(ret < 0);
} }
btrfs_set_node_key(lower, key, slot); btrfs_set_node_key(lower, key, slot);
...@@ -4219,7 +4219,7 @@ static void del_ptr(struct btrfs_root *root, struct btrfs_path *path, ...@@ -4219,7 +4219,7 @@ static void del_ptr(struct btrfs_root *root, struct btrfs_path *path,
(nritems - slot - 1)); (nritems - slot - 1));
} else if (level) { } else if (level) {
ret = btrfs_tree_mod_log_insert_key(parent, slot, ret = btrfs_tree_mod_log_insert_key(parent, slot,
BTRFS_MOD_LOG_KEY_REMOVE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REMOVE);
BUG_ON(ret < 0); BUG_ON(ret < 0);
} }
......
...@@ -197,12 +197,11 @@ static inline bool tree_mod_need_log(const struct btrfs_fs_info *fs_info, ...@@ -197,12 +197,11 @@ static inline bool tree_mod_need_log(const struct btrfs_fs_info *fs_info,
static struct tree_mod_elem *alloc_tree_mod_elem(struct extent_buffer *eb, static struct tree_mod_elem *alloc_tree_mod_elem(struct extent_buffer *eb,
int slot, int slot,
enum btrfs_mod_log_op op, enum btrfs_mod_log_op op)
gfp_t flags)
{ {
struct tree_mod_elem *tm; struct tree_mod_elem *tm;
tm = kzalloc(sizeof(*tm), flags); tm = kzalloc(sizeof(*tm), GFP_NOFS);
if (!tm) if (!tm)
return NULL; return NULL;
...@@ -220,7 +219,7 @@ static struct tree_mod_elem *alloc_tree_mod_elem(struct extent_buffer *eb, ...@@ -220,7 +219,7 @@ static struct tree_mod_elem *alloc_tree_mod_elem(struct extent_buffer *eb,
} }
int btrfs_tree_mod_log_insert_key(struct extent_buffer *eb, int slot, int btrfs_tree_mod_log_insert_key(struct extent_buffer *eb, int slot,
enum btrfs_mod_log_op op, gfp_t flags) enum btrfs_mod_log_op op)
{ {
struct tree_mod_elem *tm; struct tree_mod_elem *tm;
int ret; int ret;
...@@ -228,7 +227,7 @@ int btrfs_tree_mod_log_insert_key(struct extent_buffer *eb, int slot, ...@@ -228,7 +227,7 @@ int btrfs_tree_mod_log_insert_key(struct extent_buffer *eb, int slot,
if (!tree_mod_need_log(eb->fs_info, eb)) if (!tree_mod_need_log(eb->fs_info, eb))
return 0; return 0;
tm = alloc_tree_mod_elem(eb, slot, op, flags); tm = alloc_tree_mod_elem(eb, slot, op);
if (!tm) if (!tm)
return -ENOMEM; return -ENOMEM;
...@@ -276,7 +275,7 @@ int btrfs_tree_mod_log_insert_move(struct extent_buffer *eb, ...@@ -276,7 +275,7 @@ int btrfs_tree_mod_log_insert_move(struct extent_buffer *eb,
for (i = 0; i + dst_slot < src_slot && i < nr_items; i++) { for (i = 0; i + dst_slot < src_slot && i < nr_items; i++) {
tm_list[i] = alloc_tree_mod_elem(eb, i + dst_slot, tm_list[i] = alloc_tree_mod_elem(eb, i + dst_slot,
BTRFS_MOD_LOG_KEY_REMOVE_WHILE_MOVING, GFP_NOFS); BTRFS_MOD_LOG_KEY_REMOVE_WHILE_MOVING);
if (!tm_list[i]) { if (!tm_list[i]) {
ret = -ENOMEM; ret = -ENOMEM;
goto free_tms; goto free_tms;
...@@ -364,7 +363,7 @@ int btrfs_tree_mod_log_insert_root(struct extent_buffer *old_root, ...@@ -364,7 +363,7 @@ int btrfs_tree_mod_log_insert_root(struct extent_buffer *old_root,
} }
for (i = 0; i < nritems; i++) { for (i = 0; i < nritems; i++) {
tm_list[i] = alloc_tree_mod_elem(old_root, i, tm_list[i] = alloc_tree_mod_elem(old_root, i,
BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING, GFP_NOFS); BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING);
if (!tm_list[i]) { if (!tm_list[i]) {
ret = -ENOMEM; ret = -ENOMEM;
goto free_tms; goto free_tms;
...@@ -502,14 +501,14 @@ int btrfs_tree_mod_log_eb_copy(struct extent_buffer *dst, ...@@ -502,14 +501,14 @@ int btrfs_tree_mod_log_eb_copy(struct extent_buffer *dst,
tm_list_rem = tm_list + nr_items; tm_list_rem = tm_list + nr_items;
for (i = 0; i < nr_items; i++) { for (i = 0; i < nr_items; i++) {
tm_list_rem[i] = alloc_tree_mod_elem(src, i + src_offset, tm_list_rem[i] = alloc_tree_mod_elem(src, i + src_offset,
BTRFS_MOD_LOG_KEY_REMOVE, GFP_NOFS); BTRFS_MOD_LOG_KEY_REMOVE);
if (!tm_list_rem[i]) { if (!tm_list_rem[i]) {
ret = -ENOMEM; ret = -ENOMEM;
goto free_tms; goto free_tms;
} }
tm_list_add[i] = alloc_tree_mod_elem(dst, i + dst_offset, tm_list_add[i] = alloc_tree_mod_elem(dst, i + dst_offset,
BTRFS_MOD_LOG_KEY_ADD, GFP_NOFS); BTRFS_MOD_LOG_KEY_ADD);
if (!tm_list_add[i]) { if (!tm_list_add[i]) {
ret = -ENOMEM; ret = -ENOMEM;
goto free_tms; goto free_tms;
...@@ -564,7 +563,7 @@ int btrfs_tree_mod_log_free_eb(struct extent_buffer *eb) ...@@ -564,7 +563,7 @@ int btrfs_tree_mod_log_free_eb(struct extent_buffer *eb)
for (i = 0; i < nritems; i++) { for (i = 0; i < nritems; i++) {
tm_list[i] = alloc_tree_mod_elem(eb, i, tm_list[i] = alloc_tree_mod_elem(eb, i,
BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING, GFP_NOFS); BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING);
if (!tm_list[i]) { if (!tm_list[i]) {
ret = -ENOMEM; ret = -ENOMEM;
goto free_tms; goto free_tms;
......
...@@ -32,7 +32,7 @@ int btrfs_tree_mod_log_insert_root(struct extent_buffer *old_root, ...@@ -32,7 +32,7 @@ int btrfs_tree_mod_log_insert_root(struct extent_buffer *old_root,
struct extent_buffer *new_root, struct extent_buffer *new_root,
bool log_removal); bool log_removal);
int btrfs_tree_mod_log_insert_key(struct extent_buffer *eb, int slot, int btrfs_tree_mod_log_insert_key(struct extent_buffer *eb, int slot,
enum btrfs_mod_log_op op, gfp_t flags); enum btrfs_mod_log_op op);
int btrfs_tree_mod_log_free_eb(struct extent_buffer *eb); int btrfs_tree_mod_log_free_eb(struct extent_buffer *eb);
struct extent_buffer *btrfs_tree_mod_log_rewind(struct btrfs_fs_info *fs_info, struct extent_buffer *btrfs_tree_mod_log_rewind(struct btrfs_fs_info *fs_info,
struct btrfs_path *path, struct btrfs_path *path,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment