diff options
Diffstat (limited to 'fs/xfs/xfs_bmap.c')
| -rw-r--r-- | fs/xfs/xfs_bmap.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 3548c6f75593..85e7e327bcd8 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -5124,6 +5124,15 @@ xfs_bunmapi(  		cur->bc_private.b.flags = 0;  	} else  		cur = NULL; + +	if (isrt) { +		/* +		 * Synchronize by locking the bitmap inode. +		 */ +		xfs_ilock(mp->m_rbmip, XFS_ILOCK_EXCL); +		xfs_trans_ijoin(tp, mp->m_rbmip, XFS_ILOCK_EXCL); +	} +  	extno = 0;  	while (bno != (xfs_fileoff_t)-1 && bno >= start && lastx >= 0 &&  	       (nexts == 0 || extno < nexts)) {  |