diff options
Diffstat (limited to 'fs/btrfs/backref.c')
| -rw-r--r-- | fs/btrfs/backref.c | 19 | 
1 files changed, 10 insertions, 9 deletions
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index e54f0884802a..79336fa853db 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -45,7 +45,8 @@ static int check_extent_in_eb(struct btrfs_backref_walk_ctx *ctx,  	int root_count;  	bool cached; -	if (!btrfs_file_extent_compression(eb, fi) && +	if (!ctx->ignore_extent_item_pos && +	    !btrfs_file_extent_compression(eb, fi) &&  	    !btrfs_file_extent_encryption(eb, fi) &&  	    !btrfs_file_extent_other_encoding(eb, fi)) {  		u64 data_offset; @@ -552,7 +553,7 @@ static int add_all_parents(struct btrfs_backref_walk_ctx *ctx,  				count++;  			else  				goto next; -			if (!ctx->ignore_extent_item_pos) { +			if (!ctx->skip_inode_ref_list) {  				ret = check_extent_in_eb(ctx, &key, eb, fi, &eie);  				if (ret == BTRFS_ITERATE_EXTENT_INODES_STOP ||  				    ret < 0) @@ -564,7 +565,7 @@ static int add_all_parents(struct btrfs_backref_walk_ctx *ctx,  						  eie, (void **)&old, GFP_NOFS);  			if (ret < 0)  				break; -			if (!ret && !ctx->ignore_extent_item_pos) { +			if (!ret && !ctx->skip_inode_ref_list) {  				while (old->next)  					old = old->next;  				old->next = eie; @@ -1606,7 +1607,7 @@ again:  				goto out;  		}  		if (ref->count && ref->parent) { -			if (!ctx->ignore_extent_item_pos && !ref->inode_list && +			if (!ctx->skip_inode_ref_list && !ref->inode_list &&  			    ref->level == 0) {  				struct btrfs_tree_parent_check check = { 0 };  				struct extent_buffer *eb; @@ -1647,7 +1648,7 @@ again:  						  (void **)&eie, GFP_NOFS);  			if (ret < 0)  				goto out; -			if (!ret && !ctx->ignore_extent_item_pos) { +			if (!ret && !ctx->skip_inode_ref_list) {  				/*  				 * We've recorded that parent, so we must extend  				 * its inode list here. @@ -1743,7 +1744,7 @@ int btrfs_find_all_leafs(struct btrfs_backref_walk_ctx *ctx)  static int btrfs_find_all_roots_safe(struct btrfs_backref_walk_ctx *ctx)  {  	const u64 orig_bytenr = ctx->bytenr; -	const bool orig_ignore_extent_item_pos = ctx->ignore_extent_item_pos; +	const bool orig_skip_inode_ref_list = ctx->skip_inode_ref_list;  	bool roots_ulist_allocated = false;  	struct ulist_iterator uiter;  	int ret = 0; @@ -1764,7 +1765,7 @@ static int btrfs_find_all_roots_safe(struct btrfs_backref_walk_ctx *ctx)  		roots_ulist_allocated = true;  	} -	ctx->ignore_extent_item_pos = true; +	ctx->skip_inode_ref_list = true;  	ULIST_ITER_INIT(&uiter);  	while (1) { @@ -1789,7 +1790,7 @@ static int btrfs_find_all_roots_safe(struct btrfs_backref_walk_ctx *ctx)  	ulist_free(ctx->refs);  	ctx->refs = NULL;  	ctx->bytenr = orig_bytenr; -	ctx->ignore_extent_item_pos = orig_ignore_extent_item_pos; +	ctx->skip_inode_ref_list = orig_skip_inode_ref_list;  	return ret;  } @@ -1912,7 +1913,7 @@ int btrfs_is_data_extent_shared(struct btrfs_inode *inode, u64 bytenr,  		goto out_trans;  	} -	walk_ctx.ignore_extent_item_pos = true; +	walk_ctx.skip_inode_ref_list = true;  	walk_ctx.trans = trans;  	walk_ctx.fs_info = fs_info;  	walk_ctx.refs = &ctx->refs;  | 
