[PATCH v12 0/8] netfs: Miscellaneous preparatory changes

From: David Howells

Date: Tue Sep 08 2026 - 05:55:52 EST


Hi Christian,

Could you pull these patches please for -next? This is the first of four
batches. This is based on your vfs.fixes as there are some prerequisite
patches there. This was split from v11 of a larger series[1].

This a collection of miscellaneous modifications to netfslib that I want to
make ahead of bigger changes, including:

(1) Convert "unsigned long long" to "uoff_t". This makes it a little more
obvious as to the meaning of the value. Also convert some "loff_t" to
"uoff_t" as most of the time it's used the value really should never
be negative.

(2) Remove the writethrough code as the locking is really tricky to get
right and it looks like it could deadlock with Ceph if snapshots are
used.

(3) Adjust some tracepoints, including adding the cache object ID to
certain tracepoinits.

(4) Make use of PG_private_2 opt-in. Use of PG_private_2 is deprecated
and the MM people would like their page bit back, so we need to stop
using it soon.

(5) Add some helper functions to handle the barriering needed for the
NETFS_RREQ_ALL_QUEUED flag.

(6) Set the subrequest type at allocation time so that the allocation
trace records the proposed type.

The patches can also be found here:

https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=netfs-next-1

Thanks,
David

Changes
=======
ver #12)
- Split from v11 of "netfs: Keep track of folios in a segmented bio_vec[]
chain"[1]

[1] https://lore.kernel.org/r/20260902173350.3468672-1-dhowells@xxxxxxxxxx/

David Howells (8):
netfs: Use uoff_t instead of unsigned long long and loff_t
netfs: Remove the writethrough code
netfs: trace: Change the "clear" folio traces to "endwb"
netfs: trace: Rejig a couple of the tracepoints
netfs: Add the cache object ID to netfs_read/write tracepoints
netfs: Make deprecated PG_private_2 support opt-in
netfs: Add some functions to wrap the all-queued handling
netfs: Set subrequest->source at alloc before trace emission

fs/9p/vfs_addr.c | 1 -
fs/afs/file.c | 5 +-
fs/cachefiles/interface.c | 10 +--
fs/cachefiles/internal.h | 4 +-
fs/cachefiles/io.c | 25 +++---
fs/ceph/Kconfig | 1 +
fs/ceph/addr.c | 4 +-
fs/netfs/Kconfig | 3 +
fs/netfs/Makefile | 2 +-
fs/netfs/buffered_read.c | 35 ++++----
fs/netfs/buffered_write.c | 66 +++------------
fs/netfs/direct_read.c | 14 ++--
fs/netfs/direct_write.c | 8 +-
fs/netfs/fscache_cookie.c | 8 +-
fs/netfs/fscache_io.c | 10 +--
fs/netfs/internal.h | 67 ++++++++++++---
fs/netfs/iterator.c | 2 +-
fs/netfs/main.c | 1 -
fs/netfs/misc.c | 10 +--
fs/netfs/objects.c | 6 +-
fs/netfs/read_collect.c | 14 ++--
fs/netfs/read_pgpriv2.c | 13 ++-
fs/netfs/read_retry.c | 5 +-
fs/netfs/read_single.c | 11 +--
fs/netfs/stats.c | 4 +-
fs/netfs/write_collect.c | 25 +++---
fs/netfs/write_issue.c | 123 ++-------------------------
fs/netfs/write_retry.c | 5 +-
fs/nfs/Kconfig | 1 +
include/linux/fscache-cache.h | 2 +-
include/linux/fscache.h | 36 ++++----
include/linux/netfs.h | 80 +++++++++---------
include/trace/events/cachefiles.h | 30 +++----
include/trace/events/fscache.h | 10 +--
include/trace/events/netfs.h | 134 +++++++++++++++---------------
35 files changed, 324 insertions(+), 451 deletions(-)