xfs: force buffer writeback before blocking on the ilock in inode reclaim
authorChristoph Hellwig <hch@lst.de>
Tue, 29 Nov 2011 18:06:14 +0000 (12:06 -0600)
committerBen Myers <bpm@sgi.com>
Tue, 29 Nov 2011 18:06:14 +0000 (12:06 -0600)
commit4dd2cb4a28b7ab1f37163a4eba280926a13a8749
treef48cbb282ad4d52649b594657f00c1c8be753a47
parentfa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba
xfs: force buffer writeback before blocking on the ilock in inode reclaim

If we are doing synchronous inode reclaim we block the VM from making
progress in memory reclaim.  So if we encouter a flush locked inode
promote it in the delwri list and wake up xfsbufd to write it out now.
Without this we can get hangs of up to 30 seconds during workloads hitting
synchronous inode reclaim.

The scheme is copied from what we do for dquot reclaims.

Reported-by: Simon Kirby <sim@hostway.ca>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Simon Kirby <sim@hostway.ca>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode.h
fs/xfs/xfs_sync.c