mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	btrfs: hold a ref on the root in scrub_print_warning_inode
We look up the root for the bytenr that is failing, so we need to hold a ref on the root for that operation. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									0b2dee5cff
								
							
						
					
					
						commit
						fd79d43b34
					
				
					 1 changed files with 7 additions and 0 deletions
				
			
		|  | @ -658,6 +658,10 @@ static int scrub_print_warning_inode(u64 inum, u64 offset, u64 root, | |||
| 		ret = PTR_ERR(local_root); | ||||
| 		goto err; | ||||
| 	} | ||||
| 	if (!btrfs_grab_fs_root(local_root)) { | ||||
| 		ret = -ENOENT; | ||||
| 		goto err; | ||||
| 	} | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * this makes the path point to (inum INODE_ITEM ioff) | ||||
|  | @ -668,6 +672,7 @@ static int scrub_print_warning_inode(u64 inum, u64 offset, u64 root, | |||
| 
 | ||||
| 	ret = btrfs_search_slot(NULL, local_root, &key, swarn->path, 0, 0); | ||||
| 	if (ret) { | ||||
| 		btrfs_put_fs_root(local_root); | ||||
| 		btrfs_release_path(swarn->path); | ||||
| 		goto err; | ||||
| 	} | ||||
|  | @ -688,6 +693,7 @@ static int scrub_print_warning_inode(u64 inum, u64 offset, u64 root, | |||
| 	ipath = init_ipath(4096, local_root, swarn->path); | ||||
| 	memalloc_nofs_restore(nofs_flag); | ||||
| 	if (IS_ERR(ipath)) { | ||||
| 		btrfs_put_fs_root(local_root); | ||||
| 		ret = PTR_ERR(ipath); | ||||
| 		ipath = NULL; | ||||
| 		goto err; | ||||
|  | @ -711,6 +717,7 @@ static int scrub_print_warning_inode(u64 inum, u64 offset, u64 root, | |||
| 				  min(isize - offset, (u64)PAGE_SIZE), nlink, | ||||
| 				  (char *)(unsigned long)ipath->fspath->val[i]); | ||||
| 
 | ||||
| 	btrfs_put_fs_root(local_root); | ||||
| 	free_ipath(ipath); | ||||
| 	return 0; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Josef Bacik
						Josef Bacik