From: Baolin Wang Date: Thu, 19 Dec 2024 07:30:09 +0000 (+0800) Subject: mm: shmem: fix the update of 'shmem_falloc->nr_unswapped' X-Git-Tag: v6.13-rc6~2^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d77b90d2b2642655b5f60953c36ad887257e1802;p=thirdparty%2Flinux.git mm: shmem: fix the update of 'shmem_falloc->nr_unswapped' The 'shmem_falloc->nr_unswapped' is used to record how many writepage refused to swap out because fallocate() is allocating, but after shmem supports large folio swap out, the update of 'shmem_falloc->nr_unswapped' does not use the correct number of pages in the large folio, which may lead to fallocate() not exiting as soon as possible. Anyway, this is found through code inspection, and I am not sure whether it would actually cause serious issues. Link: https://lkml.kernel.org/r/f66a0119d0564c2c37c84f045835b870d1b2196f.1734593154.git.baolin.wang@linux.alibaba.com Fixes: 809bc86517cc ("mm: shmem: support large folio swap out") Signed-off-by: Baolin Wang Acked-by: David Hildenbrand Cc: Hugh Dickins Cc: Signed-off-by: Andrew Morton --- diff --git a/mm/shmem.c b/mm/shmem.c index dec659e84562e..ac58d4fb2e6f5 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1535,7 +1535,7 @@ try_split: !shmem_falloc->waitq && index >= shmem_falloc->start && index < shmem_falloc->next) - shmem_falloc->nr_unswapped++; + shmem_falloc->nr_unswapped += nr_pages; else shmem_falloc = NULL; spin_unlock(&inode->i_lock);