[GIT PULL] overlayfs update for 6.5

From: Amir Goldstein
Date: Mon Jun 26 2023 - 15:19:04 EST


Hi Linus,

I am joining Miklos in the maintanance of overlayfs kernel code.
This is my first pull request, so I hope I got everything in order.

This branch has been sitting in linux-next for over a week and it
has gone through all the usual overlayfs test routines.
It merges cleanly with master branch of the moment.

FYI, there is an overlayfs related vfs change (struct backing_file) [6]
that was just merged via Christain's vfs tree [7].
That change is independent of the overlayfs changes in this pull request.
Nevertheless, the changes in this pull request have been tested together
with that vfs change.

Please refer to details about contained patch sets below.

Thanks,
Amir.

----------------------------------------------------------------

The following changes since commit 858fd168a95c5b9669aac8db6c14a9aeab446375:

Linux 6.4-rc6 (2023-06-11 14:35:30 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 62149a745eee03194f025021640c80b84353089b:

ovl: add Amir as co-maintainer (2023-06-20 18:29:12 +0300)

----------------------------------------------------------------
overlayfs update for 6.5

Contains the following patch sets:

- Zhihao Cheng investigated and fixed two NULL pointer deref bugs
[1] ovl: Fix null ptr dereference at realinode in rcu-walk

- Added support for "data-only" lower layers destined to be used by composefs
[2] Overlayfs lazy lookup of lowerdata

- Christian Brauner ported overlayfs to the new mount api
[3] Prep patches for porting overlayfs to new mount api
[4] ovl: port to new mount api & updated layer parsing
[5] ovl: reserve ability to reconfigure mount options with new mount api

[1] https://lore.kernel.org/r/20230516141619.2160800-1-chengzhihao1@xxxxxxxxxx
[2] https://lore.kernel.org/r/20230427130539.2798797-1-amir73il@xxxxxxxxx
[3] https://lore.kernel.org/r/20230617084702.2468470-1-amir73il@xxxxxxxxx
[4] https://lore.kernel.org/r/20230605-fs-overlayfs-mount_api-v3-0-730d9646b27d@xxxxxxxxxx
[5] https://lore.kernel.org/r/20230620-fs-overlayfs-mount-api-remount-v1-1-6dfcb89088e3@xxxxxxxxxx
[6] https://lore.kernel.org/r/20230615112229.2143178-1-amir73il@xxxxxxxxx
[7] https://lore.kernel.org/r/20230623-waldarbeiten-normung-c160bb98bf10@brauner

----------------------------------------------------------------
Amir Goldstein (18):
ovl: update of dentry revalidate flags after copy up
ovl: use OVL_E() and OVL_E_FLAGS() accessors
ovl: use ovl_numlower() and ovl_lowerstack() accessors
ovl: factor out ovl_free_entry() and ovl_stack_*() helpers
ovl: move ovl_entry into ovl_inode
ovl: deduplicate lowerpath and lowerstack[]
ovl: deduplicate lowerdata and lowerstack[]
ovl: remove unneeded goto instructions
ovl: introduce data-only lower layers
ovl: implement lookup in data-only layers
ovl: prepare to store lowerdata redirect for lazy lowerdata lookup
ovl: prepare for lazy lookup of lowerdata inode
ovl: implement lazy lookup of lowerdata in data-only layers
ovl: negate the ofs->share_whiteout boolean
ovl: clarify ovl_get_root() semantics
ovl: pass ovl_fs to xino helpers
ovl: store enum redirect_mode in config instead of a string
ovl: factor out ovl_parse_options() helper

Christian Brauner (4):
ovl: check type and offset of struct vfsmount in ovl_entry
ovl: port to new mount api
ovl: modify layer parameter parsing
ovl: reserve ability to reconfigure mount options with new mount api

Miklos Szeredi (1):
ovl: add Amir as co-maintainer

Zhihao Cheng (3):
ovl: let helper ovl_i_path_real() return the realinode
ovl: fix null pointer dereference in ovl_permission()
ovl: fix null pointer dereference in ovl_get_acl_rcu()

Documentation/filesystems/overlayfs.rst | 44 +-
MAINTAINERS | 1 +
fs/overlayfs/Makefile | 2 +-
fs/overlayfs/copy_up.c | 11 +
fs/overlayfs/dir.c | 9 +-
fs/overlayfs/export.c | 41 +-
fs/overlayfs/file.c | 21 +-
fs/overlayfs/inode.c | 73 +--
fs/overlayfs/namei.c | 201 +++++--
fs/overlayfs/overlayfs.h | 106 +++-
fs/overlayfs/ovl_entry.h | 91 +++-
fs/overlayfs/params.c | 389 ++++++++++++++
fs/overlayfs/readdir.c | 19 +-
fs/overlayfs/super.c | 907 +++++++++++++++-----------------
fs/overlayfs/util.c | 179 +++++--
15 files changed, 1390 insertions(+), 704 deletions(-)
create mode 100644 fs/overlayfs/params.c