summaryrefslogtreecommitdiff
path: root/lib/iov_iter.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2025-03-16 22:04:39 -0700
committerAndrew Morton <akpm@linux-foundation.org>2025-03-16 22:04:39 -0700
commit833ea1277f8e04bc05248a077ec1d41f5aa6dc70 (patch)
tree3b96debff9db612f2a683bdb7918fddfcc14385c /lib/iov_iter.c
parent80e54e84911a923c40d7bee33a34c1b4be148d7a (diff)
parent800f1059c99e2b39899bdc67a7593a7bea6375d8 (diff)
Merge branch 'mm-hotfixes-stable' into mm-stable in order to pick up memcg
and DAMON changes which are required by mm-stable material.
Diffstat (limited to 'lib/iov_iter.c')
-rw-r--r--lib/iov_iter.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/iov_iter.c b/lib/iov_iter.c
index 65f550cb5081..8c7fdb7d8c8f 100644
--- a/lib/iov_iter.c
+++ b/lib/iov_iter.c
@@ -1190,8 +1190,12 @@ static ssize_t __iov_iter_get_pages_alloc(struct iov_iter *i,
if (!n)
return -ENOMEM;
p = *pages;
- for (int k = 0; k < n; k++)
- get_page(p[k] = page + k);
+ for (int k = 0; k < n; k++) {
+ struct folio *folio = page_folio(page);
+ p[k] = page + k;
+ if (!folio_test_slab(folio))
+ folio_get(folio);
+ }
maxsize = min_t(size_t, maxsize, n * PAGE_SIZE - *start);
i->count -= maxsize;
i->iov_offset += maxsize;