mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	btrfs: push lookup_info into struct walk_control
Instead of using a flag we're passing around everywhere, add a field to walk_control that we're already passing around everywhere and use that instead. 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
							
								
									3fdf5798fa
								
							
						
					
					
						commit
						7fcee18da4
					
				
					 1 changed files with 12 additions and 10 deletions
				
			
		|  | @ -5220,6 +5220,8 @@ struct walk_control { | |||
| 	int reada_slot; | ||||
| 	int reada_count; | ||||
| 	int restarted; | ||||
| 	/* Indicate that extent info needs to be looked up when walking the tree. */ | ||||
| 	int lookup_info; | ||||
| }; | ||||
| 
 | ||||
| #define DROP_REFERENCE	1 | ||||
|  | @ -5316,7 +5318,7 @@ static noinline void reada_walk_down(struct btrfs_trans_handle *trans, | |||
| static noinline int walk_down_proc(struct btrfs_trans_handle *trans, | ||||
| 				   struct btrfs_root *root, | ||||
| 				   struct btrfs_path *path, | ||||
| 				   struct walk_control *wc, int lookup_info) | ||||
| 				   struct walk_control *wc) | ||||
| { | ||||
| 	struct btrfs_fs_info *fs_info = root->fs_info; | ||||
| 	int level = wc->level; | ||||
|  | @ -5331,7 +5333,7 @@ static noinline int walk_down_proc(struct btrfs_trans_handle *trans, | |||
| 	 * when reference count of tree block is 1, it won't increase | ||||
| 	 * again. once full backref flag is set, we never clear it. | ||||
| 	 */ | ||||
| 	if (lookup_info && | ||||
| 	if (wc->lookup_info && | ||||
| 	    ((wc->stage == DROP_REFERENCE && wc->refs[level] != 1) || | ||||
| 	     (wc->stage == UPDATE_BACKREF && !(wc->flags[level] & flag)))) { | ||||
| 		BUG_ON(!path->locks[level]); | ||||
|  | @ -5423,7 +5425,7 @@ static int check_ref_exists(struct btrfs_trans_handle *trans, | |||
| static noinline int do_walk_down(struct btrfs_trans_handle *trans, | ||||
| 				 struct btrfs_root *root, | ||||
| 				 struct btrfs_path *path, | ||||
| 				 struct walk_control *wc, int *lookup_info) | ||||
| 				 struct walk_control *wc) | ||||
| { | ||||
| 	struct btrfs_fs_info *fs_info = root->fs_info; | ||||
| 	u64 bytenr; | ||||
|  | @ -5445,7 +5447,7 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans, | |||
| 	 */ | ||||
| 	if (wc->stage == UPDATE_BACKREF && | ||||
| 	    generation <= root->root_key.offset) { | ||||
| 		*lookup_info = 1; | ||||
| 		wc->lookup_info = 1; | ||||
| 		return 1; | ||||
| 	} | ||||
| 
 | ||||
|  | @ -5477,7 +5479,7 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans, | |||
| 		ret = -EIO; | ||||
| 		goto out_unlock; | ||||
| 	} | ||||
| 	*lookup_info = 0; | ||||
| 	wc->lookup_info = 0; | ||||
| 
 | ||||
| 	if (wc->stage == DROP_REFERENCE) { | ||||
| 		if (wc->refs[level - 1] > 1) { | ||||
|  | @ -5515,7 +5517,7 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans, | |||
| 			return ret; | ||||
| 		} | ||||
| 		btrfs_tree_lock(next); | ||||
| 		*lookup_info = 1; | ||||
| 		wc->lookup_info = 1; | ||||
| 	} | ||||
| 
 | ||||
| 	level--; | ||||
|  | @ -5604,7 +5606,7 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans, | |||
| 			goto out_unlock; | ||||
| 	} | ||||
| no_delete: | ||||
| 	*lookup_info = 1; | ||||
| 	wc->lookup_info = 1; | ||||
| 	ret = 1; | ||||
| 
 | ||||
| out_unlock: | ||||
|  | @ -5738,11 +5740,11 @@ static noinline int walk_down_tree(struct btrfs_trans_handle *trans, | |||
| 				   struct walk_control *wc) | ||||
| { | ||||
| 	int level = wc->level; | ||||
| 	int lookup_info = 1; | ||||
| 	int ret = 0; | ||||
| 
 | ||||
| 	wc->lookup_info = 1; | ||||
| 	while (level >= 0) { | ||||
| 		ret = walk_down_proc(trans, root, path, wc, lookup_info); | ||||
| 		ret = walk_down_proc(trans, root, path, wc); | ||||
| 		if (ret) | ||||
| 			break; | ||||
| 
 | ||||
|  | @ -5753,7 +5755,7 @@ static noinline int walk_down_tree(struct btrfs_trans_handle *trans, | |||
| 		    btrfs_header_nritems(path->nodes[level])) | ||||
| 			break; | ||||
| 
 | ||||
| 		ret = do_walk_down(trans, root, path, wc, &lookup_info); | ||||
| 		ret = do_walk_down(trans, root, path, wc); | ||||
| 		if (ret > 0) { | ||||
| 			path->slots[level]++; | ||||
| 			continue; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Josef Bacik
						Josef Bacik