[GIT PULL] vfs fixes

From: Christian Brauner
Date: Mon Aug 26 2024 - 11:25:36 EST


/* Summary */
This contains fixes for this merge window:

VFS:

- Ensure that backing files uses file->f_ops->splice_write() for splice.

netfs:

- Revert the removal of PG_private_2 from netfs_release_folio() as cephfs still
relies on this.

- When AS_RELEASE_ALWAYS is set on a mapping the folio needs to always be
invalidated during truncation.

- Fix losing untruncated data in a folio by making letting
netfs_release_folio() return false if the folio is dirty.

- Fix trimming of streaming-write folios in netfs_inval_folio() .

- Reset iterator before retrying a short read.

- Fix interaction of streaming writes with zero-point tracker

afs:

- During truncation afs currently calls truncate_setsize() which sets i_size,
expands the pagecache and truncates it. The first two operations aren't
needed because they will have already been done. So call truncate_pagecache()
instead and skip the redundant parts.

overlayfs:

- Fix checking of the number of allowed lower layers so 500 layers can actually
be used instead of just 499

- Add missing '\n' to pr_err() output.

- Pass string to ovl_parse_layer() and thus allow it to be used for
Opt_lowerdir as well.

pidfd:

- Revert blocking the creation of pidfds for kthread as apparently userspace
relies on this. Specifically, it breaks systemd during shutdown.

romfs:

- Fix romfs_read_folio() to use the correct offset with folio_zero_tail().

/* Testing */
Debian clang version 16.0.6 (27+b1)
gcc (Debian 14.2.0-1) 14.2.0

/* Conflicts */
No known conflicts.

The following changes since commit 47ac09b91befbb6a235ab620c32af719f8208399:

Linux 6.11-rc4 (2024-08-18 13:17:27 -0700)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.11-rc6.fixes

for you to fetch changes up to e00e99ba6c6b8e5239e75cd6684a6827d93c39a2:

netfs: Fix interaction of streaming writes with zero-point tracker (2024-08-24 16:09:17 +0200)

Please consider pulling these changes from the signed vfs-6.11-rc6.fixes tag.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.11-rc6.fixes

----------------------------------------------------------------
Christian Brauner (4):
romfs: fix romfs_read_folio()
Revert "pidfd: prevent creation of pidfds for kthreads"
ovl: pass string to ovl_parse_layer()
Merge patch series "ovl: simplify ovl_parse_param_lowerdir()"

David Howells (7):
netfs, ceph: Partially revert "netfs: Replace PG_fscache by setting folio->private and marking dirty"
mm: Fix missing folio invalidation calls during truncation
afs: Fix post-setattr file edit to do truncation correctly
netfs: Fix netfs_release_folio() to say no if folio dirty
netfs: Fix trimming of streaming-write folios in netfs_inval_folio()
netfs: Fix missing iterator reset on retry of short read
netfs: Fix interaction of streaming writes with zero-point tracker

Ed Tsai (1):
backing-file: convert to using fops->splice_write

Zhihao Cheng (2):
ovl: fix wrong lowerdir number check for parameter Opt_lowerdir
ovl: ovl_parse_param_lowerdir: Add missed '\n' for pr_err

fs/afs/inode.c | 11 ++++++---
fs/backing-file.c | 5 +++-
fs/ceph/inode.c | 1 +
fs/netfs/io.c | 1 +
fs/netfs/misc.c | 60 ++++++++++++++++++++++++++++++++++++------------
fs/netfs/write_collect.c | 7 ++++++
fs/overlayfs/params.c | 51 ++++++++++------------------------------
fs/romfs/super.c | 2 +-
kernel/fork.c | 25 +++-----------------
mm/truncate.c | 4 ++--
10 files changed, 84 insertions(+), 83 deletions(-)