diff options
Diffstat (limited to 'fs/btrfs/inode.c')
| -rw-r--r-- | fs/btrfs/inode.c | 34 | 
1 files changed, 8 insertions, 26 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 456667b04fe..c41637a1ed3 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -732,10 +732,7 @@ retry:  		while (1) {  			write_lock(&em_tree->lock); -			ret = add_extent_mapping(em_tree, em); -			if (!ret) -				list_move(&em->list, -					  &em_tree->modified_extents); +			ret = add_extent_mapping(em_tree, em, 1);  			write_unlock(&em_tree->lock);  			if (ret != -EEXIST) {  				free_extent_map(em); @@ -941,10 +938,7 @@ static noinline int __cow_file_range(struct btrfs_trans_handle *trans,  		while (1) {  			write_lock(&em_tree->lock); -			ret = add_extent_mapping(em_tree, em); -			if (!ret) -				list_move(&em->list, -					  &em_tree->modified_extents); +			ret = add_extent_mapping(em_tree, em, 1);  			write_unlock(&em_tree->lock);  			if (ret != -EEXIST) {  				free_extent_map(em); @@ -1387,10 +1381,7 @@ out_check:  			em->generation = -1;  			while (1) {  				write_lock(&em_tree->lock); -				ret = add_extent_mapping(em_tree, em); -				if (!ret) -					list_move(&em->list, -						  &em_tree->modified_extents); +				ret = add_extent_mapping(em_tree, em, 1);  				write_unlock(&em_tree->lock);  				if (ret != -EEXIST) {  					free_extent_map(em); @@ -4467,10 +4458,7 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size)  			while (1) {  				write_lock(&em_tree->lock); -				err = add_extent_mapping(em_tree, hole_em); -				if (!err) -					list_move(&hole_em->list, -						  &em_tree->modified_extents); +				err = add_extent_mapping(em_tree, hole_em, 1);  				write_unlock(&em_tree->lock);  				if (err != -EEXIST)  					break; @@ -5989,7 +5977,7 @@ static int merge_extent_mapping(struct extent_map_tree *em_tree,  		em->block_start += start_diff;  		em->block_len -= start_diff;  	} -	return add_extent_mapping(em_tree, em); +	return add_extent_mapping(em_tree, em, 0);  }  static noinline int uncompress_inline(struct btrfs_path *path, @@ -6283,7 +6271,7 @@ insert:  	err = 0;  	write_lock(&em_tree->lock); -	ret = add_extent_mapping(em_tree, em); +	ret = add_extent_mapping(em_tree, em, 0);  	/* it is possible that someone inserted the extent into the tree  	 * while we had the lock dropped.  It is also possible that  	 * an overlapping map exists in the tree @@ -6706,10 +6694,7 @@ static struct extent_map *create_pinned_em(struct inode *inode, u64 start,  		btrfs_drop_extent_cache(inode, em->start,  				em->start + em->len - 1, 0);  		write_lock(&em_tree->lock); -		ret = add_extent_mapping(em_tree, em); -		if (!ret) -			list_move(&em->list, -				  &em_tree->modified_extents); +		ret = add_extent_mapping(em_tree, em, 1);  		write_unlock(&em_tree->lock);  	} while (ret == -EEXIST); @@ -8593,10 +8578,7 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode,  		while (1) {  			write_lock(&em_tree->lock); -			ret = add_extent_mapping(em_tree, em); -			if (!ret) -				list_move(&em->list, -					  &em_tree->modified_extents); +			ret = add_extent_mapping(em_tree, em, 1);  			write_unlock(&em_tree->lock);  			if (ret != -EEXIST)  				break;  |