summaryrefslogtreecommitdiff
path: root/fs/xfs
diff options
context:
space:
mode:
authorMel Gorman <mgorman@suse.de>2011-10-31 17:07:45 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-10-31 17:30:46 -0700
commit94054fa3fca1fd78db02cb3d68d5627120f0a1d4 (patch)
tree6ba391fcbad8500610706da5fbc03ffe9cecfd55 /fs/xfs
parenta18bba061c789f5815c3efc3c80e6ac269911964 (diff)
downloadlinux-3.10-94054fa3fca1fd78db02cb3d68d5627120f0a1d4.tar.gz
linux-3.10-94054fa3fca1fd78db02cb3d68d5627120f0a1d4.tar.bz2
linux-3.10-94054fa3fca1fd78db02cb3d68d5627120f0a1d4.zip
xfs: warn if direct reclaim tries to writeback pages
Direct reclaim should never writeback pages. For now, handle the situation and warn about it. Ultimately, this will be a BUG_ON. Signed-off-by: Mel Gorman <mgorman@suse.de> Cc: Dave Chinner <david@fromorbit.com> Cc: Christoph Hellwig <hch@infradead.org> Cc: Johannes Weiner <jweiner@redhat.com> Cc: Wu Fengguang <fengguang.wu@intel.com> Cc: Jan Kara <jack@suse.cz> Cc: Minchan Kim <minchan.kim@gmail.com> Cc: Rik van Riel <riel@redhat.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Alex Elder <aelder@sgi.com> Cc: Theodore Ts'o <tytso@mit.edu> Cc: Chris Mason <chris.mason@oracle.com> Cc: Dave Hansen <dave@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/xfs_aops.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 11b2aad982d..33b13310ee0 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -902,11 +902,11 @@ xfs_vm_writepage(
* 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.
+ * This should never happen except in the case of a VM regression so
+ * warn about it.
*/
- if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC)
+ if (WARN_ON_ONCE((current->flags & (PF_MEMALLOC|PF_KSWAPD)) ==
+ PF_MEMALLOC))
goto redirty;
/*