summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mm/shmem.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/mm/shmem.c b/mm/shmem.c
index b297eaf43f43..7751c136eadb 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1347,6 +1347,12 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
if (WARN_ON_ONCE(!wbc->for_reclaim))
goto redirty;
+ if (WARN_ON_ONCE(info->flags & VM_LOCKED))
+ goto redirty;
+
+ if (!total_swap_pages)
+ goto redirty;
+
/*
* If /sys/kernel/mm/transparent_hugepage/shmem_enabled is "always" or
* "force", drivers/gpu/drm/i915/gem/i915_gem_shmem.c gets huge pages,
@@ -1362,10 +1368,6 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
}
index = folio->index;
- if (info->flags & VM_LOCKED)
- goto redirty;
- if (!total_swap_pages)
- goto redirty;
/*
* This is somewhat ridiculous, but without plumbing a SWAP_MAP_FALLOC