diff options
Diffstat (limited to 'fs/btrfs/relocation.c')
| -rw-r--r-- | fs/btrfs/relocation.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index 0bf3bc879503..23e16de52e23 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -3871,6 +3871,7 @@ static noinline_for_stack  int prepare_to_relocate(struct reloc_control *rc)  {  	struct btrfs_trans_handle *trans; +	int ret;  	rc->block_rsv = btrfs_alloc_block_rsv(rc->extent_root,  					      BTRFS_BLOCK_RSV_TEMP); @@ -3885,6 +3886,11 @@ int prepare_to_relocate(struct reloc_control *rc)  	rc->reserved_bytes = 0;  	rc->block_rsv->size = rc->extent_root->nodesize *  			      RELOCATION_RESERVED_NODES; +	ret = btrfs_block_rsv_refill(rc->extent_root, +				     rc->block_rsv, rc->block_rsv->size, +				     BTRFS_RESERVE_FLUSH_ALL); +	if (ret) +		return ret;  	rc->create_reloc_tree = 1;  	set_reloc_control(rc);  |