linux/fs/netfs
David Howells 9871938f99
netfs, afs: Fix write skipping in dir/link writepages
Fix netfs_write_single() and afs_single_writepages() to better handle a
write that would be skipped due to lock contention and WB_SYNC_NONE by
returning 1 from netfs_write_single() if it skipped and making
afs_single_writepages() skip also.  If a skip occurs, the inode must be
re-marked as the VFS may have cleared the mark.

This is really only theoretical for directories in netfs_write_single() as
the only path to that is through afs_single_writepages() that takes the
->validate_lock around it, thereby serialising it.

Fixes: 6dd8093661 ("afs: Use netfslib for directories")
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://patch.msgid.link/20260512123404.719402-24-dhowells@redhat.com
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
2026-05-12 14:42:32 +02:00
..
buffered_read.c netfs: Fix netfs_read_folio() to wait on writeback 2026-05-12 14:42:32 +02:00
buffered_write.c netfs: Fix folio->private handling in netfs_perform_write() 2026-05-12 14:42:32 +02:00
direct_read.c netfs: Fix cancellation of a DIO and single read subrequests 2026-05-12 14:42:29 +02:00
direct_write.c netfs: Fix potential for tearing in ->remote_i_size and ->zero_point 2026-05-12 14:42:30 +02:00
fscache_cache.c
fscache_cookie.c
fscache_internal.h
fscache_io.c
fscache_main.c
fscache_proc.c
fscache_stats.c
fscache_volume.c
internal.h netfs: Fix cancellation of a DIO and single read subrequests 2026-05-12 14:42:29 +02:00
iterator.c netfs: Fix overrun check in netfs_extract_user_iter() 2026-05-12 14:42:30 +02:00
Kconfig
locking.c
main.c
Makefile
misc.c netfs: Fix partial invalidation of streaming-write folio 2026-05-12 14:42:32 +02:00
objects.c
read_collect.c netfs: Fix potential UAF in netfs_unlock_abandoned_read_pages() 2026-05-12 14:42:32 +02:00
read_pgpriv2.c
read_retry.c netfs: Fix potential UAF in netfs_unlock_abandoned_read_pages() 2026-05-12 14:42:32 +02:00
read_single.c netfs: Fix cancellation of a DIO and single read subrequests 2026-05-12 14:42:29 +02:00
rolling_buffer.c
stats.c
write_collect.c netfs: Fix potential for tearing in ->remote_i_size and ->zero_point 2026-05-12 14:42:30 +02:00
write_issue.c netfs, afs: Fix write skipping in dir/link writepages 2026-05-12 14:42:32 +02:00
write_retry.c netfs: Fix missing locking around retry adding new subreqs 2026-05-12 14:42:29 +02:00