summaryrefslogtreecommitdiff
path: root/mm/vmscan.c
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2023-05-11 09:06:26 -0700
committerJakub Kicinski <kuba@kernel.org>2023-05-11 09:06:55 -0700
commitbc88ba0cad64a4aa85f9deca79c6f3addcd21795 (patch)
tree66db8412b3f65bf19645611afee4b1dbe14b74a8 /mm/vmscan.c
parent285b2a46953cecea207c53f7c6a7a76c9bbab303 (diff)
parent6e27831b91a0bc572902eb065b374991c1ef452a (diff)
downloadlinux-bc88ba0cad64a4aa85f9deca79c6f3addcd21795.tar.gz
linux-bc88ba0cad64a4aa85f9deca79c6f3addcd21795.tar.bz2
linux-bc88ba0cad64a4aa85f9deca79c6f3addcd21795.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes. No conflicts. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 5bde07409303..d257916f39e5 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1967,6 +1967,16 @@ retry:
}
}
+ /*
+ * Folio is unmapped now so it cannot be newly pinned anymore.
+ * No point in trying to reclaim folio if it is pinned.
+ * Furthermore we don't want to reclaim underlying fs metadata
+ * if the folio is pinned and thus potentially modified by the
+ * pinning process as that may upset the filesystem.
+ */
+ if (folio_maybe_dma_pinned(folio))
+ goto activate_locked;
+
mapping = folio_mapping(folio);
if (folio_test_dirty(folio)) {
/*