mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	btrfs: simplify error handling in __btrfs_write_out_cache()
The error cleanup gotos in __btrfs_write_out_cache() needlessly jump back making the code less readable then needed. Flatten them out so no back-jump is necessary and the read flow is uninterrupted. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									1afb648e94
								
							
						
					
					
						commit
						fd8efa818c
					
				
					 1 changed files with 11 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -1367,18 +1367,6 @@ static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode,
 | 
			
		|||
 | 
			
		||||
	return 0;
 | 
			
		||||
 | 
			
		||||
out:
 | 
			
		||||
	io_ctl->inode = NULL;
 | 
			
		||||
	io_ctl_free(io_ctl);
 | 
			
		||||
	if (ret) {
 | 
			
		||||
		invalidate_inode_pages2(inode->i_mapping);
 | 
			
		||||
		BTRFS_I(inode)->generation = 0;
 | 
			
		||||
	}
 | 
			
		||||
	btrfs_update_inode(trans, root, inode);
 | 
			
		||||
	if (must_iput)
 | 
			
		||||
		iput(inode);
 | 
			
		||||
	return ret;
 | 
			
		||||
 | 
			
		||||
out_nospc_locked:
 | 
			
		||||
	cleanup_bitmap_list(&bitmap_list);
 | 
			
		||||
	spin_unlock(&ctl->tree_lock);
 | 
			
		||||
| 
						 | 
				
			
			@ -1391,7 +1379,17 @@ static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode,
 | 
			
		|||
	if (block_group && (block_group->flags & BTRFS_BLOCK_GROUP_DATA))
 | 
			
		||||
		up_write(&block_group->data_rwsem);
 | 
			
		||||
 | 
			
		||||
	goto out;
 | 
			
		||||
out:
 | 
			
		||||
	io_ctl->inode = NULL;
 | 
			
		||||
	io_ctl_free(io_ctl);
 | 
			
		||||
	if (ret) {
 | 
			
		||||
		invalidate_inode_pages2(inode->i_mapping);
 | 
			
		||||
		BTRFS_I(inode)->generation = 0;
 | 
			
		||||
	}
 | 
			
		||||
	btrfs_update_inode(trans, root, inode);
 | 
			
		||||
	if (must_iput)
 | 
			
		||||
		iput(inode);
 | 
			
		||||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int btrfs_write_out_cache(struct btrfs_trans_handle *trans,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue