]> rtime.felk.cvut.cz Git - mcf548x/linux.git/commitdiff
xfs: allow writeback from kswapd
authorChristoph Hellwig <hch@infradead.org>
Mon, 28 Jun 2010 14:34:44 +0000 (10:34 -0400)
committerAlex Elder <aelder@sgi.com>
Mon, 26 Jul 2010 18:16:46 +0000 (13:16 -0500)
We only need disable I/O from direct or memcg reclaim.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
fs/xfs/linux-2.6/xfs_aops.c

index ed9c3db376c3a3bcc682f1f966c0bb2831852f45..44ac7a0e2926cacd7944c96263e5aadefbb0ae8a 100644 (file)
@@ -1049,16 +1049,15 @@ xfs_vm_writepage(
        /*
         * Refuse to write the page out if we are called from reclaim context.
         *
-        * This is primarily to avoid stack overflows when called from deep
-        * used stacks in random callers for direct reclaim, but disabling
-        * reclaim for kswap is a nice side-effect as kswapd causes rather
-        * suboptimal I/O patters, too.
+        * This avoids stack overflows when called from deeply used stacks in
+        * random callers for direct reclaim or memcg reclaim.  We explicitly
+        * allow reclaim from kswapd as the stack usage there is relatively low.
         *
         * This should really be done by the core VM, but until that happens
         * filesystems like XFS, btrfs and ext4 have to take care of this
         * by themselves.
         */
-       if (current->flags & PF_MEMALLOC)
+       if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC)
                goto out_fail;
 
        /*