diff options
| author | Linus Torvalds <[email protected]> | 2012-03-28 15:23:52 -0700 | 
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2012-03-28 15:23:52 -0700 | 
| commit | f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5 (patch) | |
| tree | fb51d60060453aef9e776c7d3a31588609d34d76 /fs/xfs/xfs_bmap.c | |
| parent | 0c9aac08261512d70d7d4817bd222abca8b6bdd6 (diff) | |
| parent | 5a5881cdeec2c019b5c9a307800218ee029f7f61 (diff) | |
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Pull XFS update (part 2) from Ben Myers:
 "Fixes for tracing of xfs_name strings, flag handling in
  open_by_handle, a log space hang with freeze/unfreeze, fstrim offset
  calculations, a section mismatch with xfs_qm_exit, an oops in
  xlog_recover_process_iunlinks, and a deadlock in xfs_rtfree_extent.
  There are also additional trace points for attributes, and the
  addition of a workqueue for allocation to work around kernel stack
  size limitations."
* 'for-linus' of git://oss.sgi.com/xfs/xfs:
  xfs: add lots of attribute trace points
  xfs: Fix oops on IO error during xlog_recover_process_iunlinks()
  xfs: fix fstrim offset calculations
  xfs: Account log unmount transaction correctly
  xfs: don't cache inodes read through bulkstat
  xfs: trace xfs_name strings correctly
  xfs: introduce an allocation workqueue
  xfs: Fix open flag handling in open_by_handle code
  xfs: fix deadlock in xfs_rtfree_extent
  fs: xfs: fix section mismatch in linux-next
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)) {  |