mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	btrfs: have proper error handling in btrfs_init_reloc_root
create_reloc_root will return errors in the future, and __add_reloc_root can return ENOMEM or EEXIST, so handle these errors properly. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> [ add comment ] Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									03a7e111a9
								
							
						
					
					
						commit
						00bb36a0e7
					
				
					 1 changed files with 7 additions and 1 deletions
				
			
		|  | @ -856,9 +856,15 @@ int btrfs_init_reloc_root(struct btrfs_trans_handle *trans, | |||
| 	reloc_root = create_reloc_root(trans, root, root->root_key.objectid); | ||||
| 	if (clear_rsv) | ||||
| 		trans->block_rsv = rsv; | ||||
| 	if (IS_ERR(reloc_root)) | ||||
| 		return PTR_ERR(reloc_root); | ||||
| 
 | ||||
| 	ret = __add_reloc_root(reloc_root); | ||||
| 	BUG_ON(ret < 0); | ||||
| 	if (ret) { | ||||
| 		/* Pairs with create_reloc_root */ | ||||
| 		btrfs_put_root(reloc_root); | ||||
| 		return ret; | ||||
| 	} | ||||
| 	root->reloc_root = btrfs_grab_root(reloc_root); | ||||
| 	return 0; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Josef Bacik
						Josef Bacik