OSDN Git Service

xfs: force buffer writeback before blocking on the ilock in inode reclaim
authorChristoph Hellwig <hch@infradead.org>
Tue, 6 Dec 2011 21:21:15 +0000 (16:21 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 9 Dec 2011 16:52:46 +0000 (08:52 -0800)
commitedb9a31845c5ba0ff325daa58f17f881d60d1559
tree0ffeb6668a822dd80aa96f2cfeb116bb4fba68e8
parenta980e5dccb3ff8cb8f77ff27264b13837958119d
xfs: force buffer writeback before blocking on the ilock in inode reclaim

commit 4dd2cb4a28b7ab1f37163a4eba280926a13a8749 upstream.

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>
Acked-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/xfs/linux-2.6/xfs_sync.c
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode.h