xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks
authorChristoph Hellwig <hch@infradead.org>
Mon, 19 Oct 2009 04:03:46 +0000 (04:03 +0000)
committerAlex Elder <aelder@sgi.com>
Fri, 11 Dec 2009 21:11:19 +0000 (15:11 -0600)
commitc56c9631cbe88f08854a56ff9776c1f310916830
tree9069de0b572857072bc99334b8d5e1bce14ef13f
parent848ce8f731aed0a2d4ab5884a4f6664af73d2dd0
xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks

When xfs_free_eofblocks is called from ->release the VM might already
hold the mmap_sem, but in the write path we take the iolock before
taking the mmap_sem in the generic write code.

Switch xfs_free_eofblocks to only trylock the iolock if called from
->release and skip trimming the prellocated blocks in that case.
We'll still free them later on the final iput.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
fs/xfs/xfs_rw.h
fs/xfs/xfs_vnodeops.c