diff options
Diffstat (limited to 'fs/xfs/xfs_aops.c')
| -rw-r--r-- | fs/xfs/xfs_aops.c | 7 | 
1 files changed, 2 insertions, 5 deletions
| diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c index ab266d66124d..e8f6c2bcd4a4 100644 --- a/fs/xfs/xfs_aops.c +++ b/fs/xfs/xfs_aops.c @@ -1585,7 +1585,6 @@ xfs_vm_bmap(  	struct xfs_inode	*ip = XFS_I(inode);  	trace_xfs_vm_bmap(XFS_I(inode)); -	xfs_ilock(ip, XFS_IOLOCK_SHARED);  	/*  	 * The swap code (ab-)uses ->bmap to get a block mapping and then @@ -1593,12 +1592,10 @@ xfs_vm_bmap(  	 * that on reflinks inodes, so we have to skip out here.  And yes,  	 * 0 is the magic code for a bmap error..  	 */ -	if (xfs_is_reflink_inode(ip)) { -		xfs_iunlock(ip, XFS_IOLOCK_SHARED); +	if (xfs_is_reflink_inode(ip))  		return 0; -	} +  	filemap_write_and_wait(mapping); -	xfs_iunlock(ip, XFS_IOLOCK_SHARED);  	return generic_block_bmap(mapping, block, xfs_get_blocks);  } | 
