Btrfs: make sure to use the delalloc reserve when filling delalloc
In the prealloc filling code and compressed code we don't set trans->block_rsv to the delalloc block reserve properly, which is going to make us use metadata from the wrong pool, this patch fixes that. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com>
This commit is contained in:
		
							parent
							
								
									61c4f2c81c
								
							
						
					
					
						commit
						74b2107543
					
				| @ -619,6 +619,7 @@ retry: | ||||
| 
 | ||||
| 		trans = btrfs_join_transaction(root, 1); | ||||
| 		BUG_ON(IS_ERR(trans)); | ||||
| 		trans->block_rsv = &root->fs_info->delalloc_block_rsv; | ||||
| 		ret = btrfs_reserve_extent(trans, root, | ||||
| 					   async_extent->compressed_size, | ||||
| 					   async_extent->compressed_size, | ||||
| @ -1060,6 +1061,7 @@ static noinline int run_delalloc_nocow(struct inode *inode, | ||||
| 		trans = btrfs_join_transaction(root, 1); | ||||
| 	} | ||||
| 	BUG_ON(IS_ERR(trans)); | ||||
| 	trans->block_rsv = &root->fs_info->delalloc_block_rsv; | ||||
| 
 | ||||
| 	cow_start = (u64)-1; | ||||
| 	cur_offset = start; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user