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

David Howells posted 8 patches 2 weeks, 2 days ago
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          |  37 ++++-----
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               |  68 ++++++++++++---
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            |  12 +--
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, 326 insertions(+), 453 deletions(-)
[PATCH v13 0/8] netfs: Miscellaneous preparatory changes
Posted by David Howells 2 weeks, 2 days ago
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 #13)
- Fixed some sashiko-raised issues:
  - Fixed netfs_mark_copy_to_cache() to use netfs_using_pgpriv2() rather
    than checking NETFS_RREQ_USE_PGPRIV2.
  - Fixed netfs_all_subreqs_queued() to do smp_mb__after_atomic() after
    setting the NETFS_RREQ_ALL_QUEUED bit.
  - Fixed netfs_single_dispatch_read() to not immediately contradict its
    own initialisation of subreq->source.

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@redhat.com/
[2] https://sashiko.dev/#/patchset/20260908091031.1506798-1-dhowells%40redhat.com

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          |  37 ++++-----
 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               |  68 ++++++++++++---
 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            |  12 +--
 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, 326 insertions(+), 453 deletions(-)
Re: [PATCH v13 0/8] netfs: Miscellaneous preparatory changes
Posted by Christian Brauner 2 weeks, 1 day ago
On Wed, 09 Sep 2026 08:20:54 +0100, David Howells wrote:
> netfs: Miscellaneous preparatory changes
> 
> 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].
> 
> [...]

Applied to the vfs-7.4.netfs branch of the vfs/vfs.git tree.
Patches in the vfs-7.4.netfs branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs-7.4.netfs

[1/8] netfs: Use uoff_t instead of unsigned long long and loff_t
      https://git.kernel.org/vfs/vfs/c/0447d3e7ca81
[2/8] netfs: Remove the writethrough code
      https://git.kernel.org/vfs/vfs/c/1c167be3e3f3
[3/8] netfs: trace: Change the "clear" folio traces to "endwb"
      https://git.kernel.org/vfs/vfs/c/b4c9fce24e25
[4/8] netfs: trace: Rejig a couple of the tracepoints
      https://git.kernel.org/vfs/vfs/c/80fe2005dc3c
[5/8] netfs: Add the cache object ID to netfs_read/write tracepoints
      https://git.kernel.org/vfs/vfs/c/b1abd92147b1
[6/8] netfs: Make deprecated PG_private_2 support opt-in
      https://git.kernel.org/vfs/vfs/c/e5c67dd3bbf7
[7/8] netfs: Add some functions to wrap the all-queued handling
      https://git.kernel.org/vfs/vfs/c/a38f37509940
[8/8] netfs: Set subrequest->source at alloc before trace emission
      https://git.kernel.org/vfs/vfs/c/3df7501ad939