The patch titled Subject: fs: remove calls to set and clear the folio error flag has been added to the -mm mm-unstable branch. Its filename is fs-remove-calls-to-set-and-clear-the-folio-error-flag.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/fs-remove-calls-to-set-and-clear-the-folio-error-flag.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> Subject: fs: remove calls to set and clear the folio error flag Date: Wed, 7 Aug 2024 20:35:25 +0100 Nobody checks the folio error flag any more, so we can stop setting and clearing it. Also remove the documentation suggesting to not bother setting the error bit. Link: https://lkml.kernel.org/r/20240807193528.1865100-1-willy@xxxxxxxxxxxxx Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- Documentation/filesystems/vfs.rst | 3 +-- mm/filemap.c | 8 -------- mm/migrate.c | 2 -- mm/page_io.c | 4 +--- 4 files changed, 2 insertions(+), 15 deletions(-) --- a/Documentation/filesystems/vfs.rst~fs-remove-calls-to-set-and-clear-the-folio-error-flag +++ a/Documentation/filesystems/vfs.rst @@ -913,8 +913,7 @@ cache in your filesystem. The following stop attempting I/O, it can simply return. The caller will remove the remaining pages from the address space, unlock them and decrement the page refcount. Set PageUptodate if the I/O - completes successfully. Setting PageError on any page will be - ignored; simply unlock the page if an I/O error occurs. + completes successfully. ``write_begin`` Called by the generic buffered write code to ask the filesystem --- a/mm/filemap.c~fs-remove-calls-to-set-and-clear-the-folio-error-flag +++ a/mm/filemap.c @@ -530,7 +530,6 @@ static void __filemap_fdatawait_range(st struct folio *folio = fbatch.folios[i]; folio_wait_writeback(folio); - folio_clear_error(folio); } folio_batch_release(&fbatch); cond_resched(); @@ -2346,13 +2345,6 @@ static int filemap_read_folio(struct fil unsigned long pflags; int error; - /* - * A previous I/O error may have been due to temporary failures, - * eg. multipath errors. PG_error will be set again if read_folio - * fails. - */ - folio_clear_error(folio); - /* Start the actual read. The read will unlock the page. */ if (unlikely(workingset)) psi_memstall_enter(&pflags); --- a/mm/migrate.c~fs-remove-calls-to-set-and-clear-the-folio-error-flag +++ a/mm/migrate.c @@ -640,8 +640,6 @@ void folio_migrate_flags(struct folio *n { int cpupid; - if (folio_test_error(folio)) - folio_set_error(newfolio); if (folio_test_referenced(folio)) folio_set_referenced(newfolio); if (folio_test_uptodate(folio)) --- a/mm/page_io.c~fs-remove-calls-to-set-and-clear-the-folio-error-flag +++ a/mm/page_io.c @@ -273,9 +273,7 @@ static void sio_write_complete(struct ki * memory for allocating transmit buffers. * Mark the page dirty and avoid * folio_rotate_reclaimable but rate-limit the - * messages but do not flag PageError like - * the normal direct-to-bio case as it could - * be temporary. + * messages. */ pr_err_ratelimited("Write error %ld on dio swapfile (%llu)\n", ret, swap_dev_pos(page_swap_entry(page))); _ Patches currently in -mm which might be from willy@xxxxxxxxxxxxx are fs-remove-calls-to-set-and-clear-the-folio-error-flag.patch mm-remove-pg_error.patch