diff options
Diffstat (limited to 'fs/btrfs/extent-tree.c')
| -rw-r--r-- | fs/btrfs/extent-tree.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 1306487c82cf..5590af92094b 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -1542,6 +1542,7 @@ again:  				ret = 0;  		}  		if (ret) { +			key.objectid = bytenr;  			key.type = BTRFS_EXTENT_ITEM_KEY;  			key.offset = num_bytes;  			btrfs_release_path(path); @@ -3542,11 +3543,13 @@ static u64 btrfs_reduce_alloc_profile(struct btrfs_root *root, u64 flags)  	return extended_to_chunk(flags | tmp);  } -static u64 get_alloc_profile(struct btrfs_root *root, u64 flags) +static u64 get_alloc_profile(struct btrfs_root *root, u64 orig_flags)  {  	unsigned seq; +	u64 flags;  	do { +		flags = orig_flags;  		seq = read_seqbegin(&root->fs_info->profiles_lock);  		if (flags & BTRFS_BLOCK_GROUP_DATA) @@ -5719,6 +5722,7 @@ static int __btrfs_free_extent(struct btrfs_trans_handle *trans,  			if (ret > 0 && skinny_metadata) {  				skinny_metadata = false; +				key.objectid = bytenr;  				key.type = BTRFS_EXTENT_ITEM_KEY;  				key.offset = num_bytes;  				btrfs_release_path(path); |