[GIT PULL] vfs netfs

From: Christian Brauner
Date: Mon Jun 02 2025 - 06:11:53 EST


Hey Linus,

A quick word on the general timing for netfs pull requests going
forward. In contrast to most of the other work I tend to send the netfs
updates a little later and will probably continue to do so in the
future. In the past we had some issues with late-stage fixes or there
were complicated merge conflicts with other trees or mainline that were
a little unusal. So since there's more jitter in how consistently this
tree can be carried through a cycle I'm letting this reflect in the pull
request timing as well.

/* Summary */

This contains the netfs updates for this cycle:

- The main API document has been extensively updated/rewritten.

- Fix an oops in write-retry due to mis-resetting the I/O iterator.

- Fix the recording of transferred bytes for short DIO reads.

- Fix a request's work item to not require a reference, thereby avoiding
the need to get rid of it in BH/IRQ context.

- Fix waiting and waking to be consistent about the waitqueue used.

- Remove NETFS_SREQ_SEEK_DATA_READ.

- Remove NETFS_INVALID_WRITE.

- Remove NETFS_ICTX_WRITETHROUGH.

- Remove NETFS_READ_HOLE_CLEAR.

- Reorder structs to eliminate holes.

- Remove netfs_io_request::ractl.

- Only provide proc_link field if CONFIG_PROC_FS=y.

- Remove folio_queue::marks3.

- Remove NETFS_RREQ_DONT_UNLOCK_FOLIOS.

- Remove NETFS_RREQ_BLOCKED.

- Fix undifferentiation of DIO reads from unbuffered reads.

generally sent
after vfs-6.16-rc1.misc

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

No known conflicts.

Merge conflicts with other trees
================================

No known conflicts.

The following changes since commit f1745496d3fba34a2e16ef47d78903d7208c1214:

netfs: Update main API document (2025-04-11 15:23:50 +0200)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.16-rc1.netfs

for you to fetch changes up to db26d62d79e4068934ad0dccdb92715df36352b9:

netfs: Fix undifferentiation of DIO reads from unbuffered reads (2025-05-23 10:35:03 +0200)

Please consider pulling these changes from the signed vfs-6.16-rc1.netfs tag.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.16-rc1.netfs

----------------------------------------------------------------
Christian Brauner (3):
Merge netfs API documentation updates
Merge patch series "netfs: Miscellaneous cleanups"
Merge patch series "netfs: Miscellaneous fixes"

David Howells (4):
netfs: Fix oops in write-retry from mis-resetting the subreq iterator
netfs: Fix the request's work item to not require a ref
netfs: Fix wait/wake to be consistent about the waitqueue used
netfs: Fix undifferentiation of DIO reads from unbuffered reads

Max Kellermann (10):
fs/netfs: remove unused flag NETFS_SREQ_SEEK_DATA_READ
fs/netfs: remove unused source NETFS_INVALID_WRITE
fs/netfs: remove unused flag NETFS_ICTX_WRITETHROUGH
fs/netfs: remove unused enum choice NETFS_READ_HOLE_CLEAR
fs/netfs: reorder struct fields to eliminate holes
fs/netfs: remove `netfs_io_request.ractl`
fs/netfs: declare field `proc_link` only if CONFIG_PROC_FS=y
folio_queue: remove unused field `marks3`
fs/netfs: remove unused flag NETFS_RREQ_DONT_UNLOCK_FOLIOS
fs/netfs: remove unused flag NETFS_RREQ_BLOCKED

Paulo Alcantara (1):
netfs: Fix setting of transferred bytes with short DIO reads

Documentation/core-api/folio_queue.rst | 3 -
Documentation/filesystems/netfs_library.rst | 5 -
fs/9p/vfs_addr.c | 5 +-
fs/afs/write.c | 9 +-
fs/cachefiles/io.c | 16 +-
fs/ceph/addr.c | 6 +-
fs/erofs/fscache.c | 6 +-
fs/netfs/buffered_read.c | 56 ++++---
fs/netfs/buffered_write.c | 5 +-
fs/netfs/direct_read.c | 16 +-
fs/netfs/direct_write.c | 12 +-
fs/netfs/fscache_io.c | 10 +-
fs/netfs/internal.h | 42 ++++--
fs/netfs/main.c | 1 +
fs/netfs/misc.c | 219 ++++++++++++++++++++++++++++
fs/netfs/objects.c | 48 +++---
fs/netfs/read_collect.c | 199 +++++--------------------
fs/netfs/read_pgpriv2.c | 4 +-
fs/netfs/read_retry.c | 26 +---
fs/netfs/read_single.c | 6 +-
fs/netfs/write_collect.c | 83 ++++-------
fs/netfs/write_issue.c | 38 ++---
fs/netfs/write_retry.c | 19 +--
fs/nfs/fscache.c | 1 +
fs/smb/client/cifsproto.h | 3 +-
fs/smb/client/cifssmb.c | 4 +-
fs/smb/client/file.c | 10 +-
fs/smb/client/smb2pdu.c | 4 +-
include/linux/folio_queue.h | 42 ------
include/linux/fscache.h | 5 +-
include/linux/netfs.h | 45 +++---
include/trace/events/netfs.h | 11 +-
net/9p/client.c | 6 +-
33 files changed, 478 insertions(+), 487 deletions(-)