From: Andrew Morton Date: Sat, 10 Dec 2022 03:31:11 +0000 (-0800) Subject: Merge branch 'mm-hotfixes-stable' into mm-stable X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3b91010500eba3601e906b0e92cf84fab4d895d1;p=linux.git Merge branch 'mm-hotfixes-stable' into mm-stable --- 3b91010500eba3601e906b0e92cf84fab4d895d1 diff --cc mm/shmem.c index f418d21205be1,82911fefc2d5e..17adb7f6f6e43 --- a/mm/shmem.c +++ b/mm/shmem.c @@@ -948,8 -945,18 +948,17 @@@ static void shmem_undo_range(struct ino folio_batch_remove_exceptionals(&fbatch); folio_batch_release(&fbatch); cond_resched(); - index++; } + /* + * When undoing a failed fallocate, we want none of the partial folio + * zeroing and splitting below, but shall want to truncate the whole + * folio when !uptodate indicates that it was added by this fallocate, + * even when [lstart, lend] covers only a part of the folio. + */ + if (unfalloc) + goto whole_folios; + same_folio = (lstart >> PAGE_SHIFT) == (lend >> PAGE_SHIFT); folio = shmem_get_partial_folio(inode, lstart >> PAGE_SHIFT); if (folio) {