mbox series

[GIT,PULL] overlayfs updates for 6.13

Message ID 20241122095746.198762-1-amir73il@gmail.com (mailing list archive)
State New
Headers show
Series [GIT,PULL] overlayfs updates for 6.13 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs.git ovl-update-6.13

Message

Amir Goldstein Nov. 22, 2024, 9:57 a.m. UTC
Hi Linus,

Please pull overlayfs updates for 6.13.

This pull request has some changes in code outside of fs/overlayfs:

1. The backing_file API change touches fuse code - that was collaborated
   with Miklos who authored this API change

2. The additions of revert/override_creds_light() helpers in cred.{h,c}
   were collaborated with Christian who has suggested those helpers

There was also an overlayfs change in this cycle coming from Christian
(file descriptors based layer setup).  His changes do not conflict with
this branch and I have also tested his change along with the fs-next
community test branch.

Most of this branch has been sitting in linux-next for over a week except
for one syzbot issue fix that was added three days ago.

The code has gone through the usual overlayfs test routines.

The branch merges cleanly with master branch of the moment.

Thanks,
Amir.

----------------------------------------------------------------
The following changes since commit 2d5404caa8c7bb5c4e0435f94b28834ae5456623:

  Linux 6.12-rc7 (2024-11-10 14:19:35 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs.git ovl-update-6.13

for you to fetch changes up to c8b359dddb418c60df1a69beea01d1b3322bfe83:

  ovl: Filter invalid inodes with missing lookup function (2024-11-20 10:23:04 +0100)

----------------------------------------------------------------
overlayfs updates for 6.13

- Fix a syzbot reported NULL pointer deref with bfs lower layers

- Fix a copy up failure of large file from lower fuse fs

- Followup cleanup of backing_file API from Miklos

- Introduction and use of revert/override_creds_light() helpers, that were
  suggested by Christian as a mitigation to cache line bouncing and false
  sharing of fields in overlayfs creator_cred long lived struct cred copy.

- Store up to two backing file references (upper and lower) in an ovl_file
  container instead of storing a single backing file in file->private_data.

  This is used to avoid the practice of opening a short lived backing file
  for the duration of some file operations and to avoid the specialized use
  of FDPUT_FPUT in such occasions, that was getting in the way of Al's
  fd_file() conversions.

----------------------------------------------------------------
Amir Goldstein (6):
      ovl: pass an explicit reference of creators creds to callers
      ovl: do not open non-data lower file for fsync
      ovl: allocate a container struct ovl_file for ovl private context
      ovl: store upper real file in ovl_file struct
      ovl: convert ovl_real_fdget_path() callers to ovl_real_file_path()
      ovl: convert ovl_real_fdget() callers to ovl_real_file()

Miklos Szeredi (1):
      backing-file: clean up the API

Oleksandr Tymoshenko (1):
      ovl: properly handle large files in ovl_security_fileattr

Vasiliy Kovalev (1):
      ovl: Filter invalid inodes with missing lookup function

Vinicius Costa Gomes (4):
      cred: Add a light version of override/revert_creds()
      fs/backing-file: Convert to revert/override_creds_light()
      ovl: use wrapper ovl_revert_creds()
      ovl: Optimize override/revert creds

 fs/backing-file.c            |  53 ++++---
 fs/fuse/passthrough.c        |  32 +++--
 fs/overlayfs/copy_up.c       |   2 +-
 fs/overlayfs/dir.c           |  68 ++++++---
 fs/overlayfs/file.c          | 327 +++++++++++++++++++++++++------------------
 fs/overlayfs/inode.c         |  27 ++--
 fs/overlayfs/namei.c         |  10 +-
 fs/overlayfs/overlayfs.h     |   4 +
 fs/overlayfs/readdir.c       |   8 +-
 fs/overlayfs/util.c          |  14 +-
 fs/overlayfs/xattrs.c        |   9 +-
 include/linux/backing-file.h |  11 +-
 include/linux/cred.h         |  18 +++
 kernel/cred.c                |   6 +-
 14 files changed, 352 insertions(+), 237 deletions(-)