btrfs: switch GFP_ATOMIC to GFP_NOFS when fixing up low keys
When fixing up the first key of each node above the current level, at fixup_low_keys(), we are doing a GFP_ATOMIC allocation for inserting an operation record for the tree mod log. However we can do just fine with GFP_NOFS nowadays. The need for GFP_ATOMIC was for the old days when we had custom locks with spinning behaviour for extent buffers and we were in spinning mode while at fixup_low_keys(). Now we use rw semaphores for extent buffer locks, so we can safely use GFP_NOFS. Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
81531225e5
commit
879b222198
|
@ -2418,7 +2418,7 @@ static void fixup_low_keys(struct btrfs_path *path,
|
|||
break;
|
||||
t = path->nodes[i];
|
||||
ret = btrfs_tree_mod_log_insert_key(t, tslot,
|
||||
BTRFS_MOD_LOG_KEY_REPLACE, GFP_ATOMIC);
|
||||
BTRFS_MOD_LOG_KEY_REPLACE, GFP_NOFS);
|
||||
BUG_ON(ret < 0);
|
||||
btrfs_set_node_key(t, key, tslot);
|
||||
btrfs_mark_buffer_dirty(path->nodes[i]);
|
||||
|
|
Loading…
Reference in New Issue