linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/42] ovl: convert to cred guard
@ 2025-11-17  9:33 Christian Brauner
  2025-11-17  9:33 ` [PATCH v4 01/42] ovl: add override_creds cleanup guard extension for overlayfs Christian Brauner
                   ` (41 more replies)
  0 siblings, 42 replies; 45+ messages in thread
From: Christian Brauner @ 2025-11-17  9:33 UTC (permalink / raw)
  To: Miklos Szeredi, Amir Goldstein
  Cc: Linus Torvalds, linux-unionfs, linux-fsdevel, Christian Brauner

This adds an overlayfs specific extension of the cred guard
infrastructure I introduced. This allows all of overlayfs to be ported
to cred guards. I refactored a few functions to reduce the scope of the
cred guard. I think this is beneficial as it's visually very easy to
grasp the scope in one go. Lightly tested.

Signed-off-by: Christian Brauner <brauner@kernel.org>
---
Changes in v4:
- Bring in Amir's rename refactor updates
- Reflow ovl_iterate() according to review.
- EDITME: use bulletpoints and terse descriptions.
- Link to v3: https://patch.msgid.link/20251113-work-ovl-cred-guard-v3-0-b35ec983efc1@kernel.org

Changes in v3:
- Drop assert.
- Fix ovl_rename() refactoring and split into two.
- EDITME: use bulletpoints and terse descriptions.
- Link to v2: https://patch.msgid.link/20251113-work-ovl-cred-guard-v2-0-c08940095e90@kernel.org

Changes in v2:
- Fixed ovl_lookup() refactoring.
- Various other fixes.
- Added vfs debug assert to detect double credential overrides.
- Link to v1: https://patch.msgid.link/20251113-work-ovl-cred-guard-v1-0-fa9887f17061@kernel.org

---
Christian Brauner (42):
      ovl: add override_creds cleanup guard extension for overlayfs
      ovl: port ovl_copy_up_flags() to cred guards
      ovl: port ovl_create_or_link() to cred guard
      ovl: port ovl_set_link_redirect() to cred guard
      ovl: port ovl_do_remove() to cred guard
      ovl: port ovl_create_tmpfile() to cred guard
      ovl: port ovl_open_realfile() to cred guard
      ovl: port ovl_llseek() to cred guard
      ovl: port ovl_fsync() to cred guard
      ovl: port ovl_fallocate() to cred guard
      ovl: port ovl_fadvise() to cred guard
      ovl: port ovl_flush() to cred guard
      ovl: port ovl_setattr() to cred guard
      ovl: port ovl_getattr() to cred guard
      ovl: port ovl_permission() to cred guard
      ovl: port ovl_get_link() to cred guard
      ovl: port do_ovl_get_acl() to cred guard
      ovl: port ovl_set_or_remove_acl() to cred guard
      ovl: port ovl_fiemap() to cred guard
      ovl: port ovl_fileattr_set() to cred guard
      ovl: port ovl_fileattr_get() to cred guard
      ovl: port ovl_maybe_validate_verity() to cred guard
      ovl: port ovl_maybe_lookup_lowerdata() to cred guard
      ovl: don't override credentials for ovl_check_whiteouts()
      ovl: refactor ovl_iterate() and port to cred guard
      ovl: port ovl_dir_llseek() to cred guard
      ovl: port ovl_check_empty_dir() to cred guard
      ovl: port ovl_nlink_start() to cred guard
      ovl: port ovl_nlink_end() to cred guard
      ovl: port ovl_xattr_set() to cred guard
      ovl: port ovl_xattr_get() to cred guard
      ovl: port ovl_listxattr() to cred guard
      ovl: introduce struct ovl_renamedata
      ovl: refactor ovl_rename()
      ovl: port ovl_rename() to cred guard
      ovl: port ovl_copyfile() to cred guard
      ovl: refactor ovl_lookup()
      ovl: port ovl_lookup() to cred guard
      ovl: port ovl_lower_positive() to cred guard
      ovl: refactor ovl_fill_super()
      ovl: port ovl_fill_super() to cred guard
      ovl: remove ovl_revert_creds()

 fs/overlayfs/copy_up.c   |   6 +-
 fs/overlayfs/dir.c       | 380 ++++++++++++++++++++++----------------------
 fs/overlayfs/file.c      | 101 ++++++------
 fs/overlayfs/inode.c     | 120 ++++++--------
 fs/overlayfs/namei.c     | 402 +++++++++++++++++++++++------------------------
 fs/overlayfs/overlayfs.h |   6 +-
 fs/overlayfs/readdir.c   | 100 ++++++------
 fs/overlayfs/super.c     |  89 ++++++-----
 fs/overlayfs/util.c      |  18 +--
 fs/overlayfs/xattrs.c    |  35 ++---
 10 files changed, 606 insertions(+), 651 deletions(-)
---
base-commit: 2902367e352af16cbed9c67ca9022b52a0b738e7
change-id: 20251112-work-ovl-cred-guard-20daabcbf8fa


^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2025-11-17 10:38 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-17  9:33 [PATCH v4 00/42] ovl: convert to cred guard Christian Brauner
2025-11-17  9:33 ` [PATCH v4 01/42] ovl: add override_creds cleanup guard extension for overlayfs Christian Brauner
2025-11-17  9:33 ` [PATCH v4 02/42] ovl: port ovl_copy_up_flags() to cred guards Christian Brauner
2025-11-17  9:33 ` [PATCH v4 03/42] ovl: port ovl_create_or_link() to cred guard Christian Brauner
2025-11-17  9:33 ` [PATCH v4 04/42] ovl: port ovl_set_link_redirect() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 05/42] ovl: port ovl_do_remove() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 06/42] ovl: port ovl_create_tmpfile() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 07/42] ovl: port ovl_open_realfile() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 08/42] ovl: port ovl_llseek() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 09/42] ovl: port ovl_fsync() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 10/42] ovl: port ovl_fallocate() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 11/42] ovl: port ovl_fadvise() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 12/42] ovl: port ovl_flush() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 13/42] ovl: port ovl_setattr() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 14/42] ovl: port ovl_getattr() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 15/42] ovl: port ovl_permission() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 16/42] ovl: port ovl_get_link() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 17/42] ovl: port do_ovl_get_acl() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 18/42] ovl: port ovl_set_or_remove_acl() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 19/42] ovl: port ovl_fiemap() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 20/42] ovl: port ovl_fileattr_set() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 21/42] ovl: port ovl_fileattr_get() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 22/42] ovl: port ovl_maybe_validate_verity() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 23/42] ovl: port ovl_maybe_lookup_lowerdata() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 24/42] ovl: don't override credentials for ovl_check_whiteouts() Christian Brauner
2025-11-17  9:33 ` [PATCH v4 25/42] ovl: refactor ovl_iterate() and port to cred guard Christian Brauner
2025-11-17  9:33 ` [PATCH v4 26/42] ovl: port ovl_dir_llseek() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 27/42] ovl: port ovl_check_empty_dir() " Christian Brauner
2025-11-17  9:33 ` [PATCH v4 28/42] ovl: port ovl_nlink_start() " Christian Brauner
2025-11-17  9:34 ` [PATCH v4 29/42] ovl: port ovl_nlink_end() " Christian Brauner
2025-11-17  9:34 ` [PATCH v4 30/42] ovl: port ovl_xattr_set() " Christian Brauner
2025-11-17  9:34 ` [PATCH v4 31/42] ovl: port ovl_xattr_get() " Christian Brauner
2025-11-17  9:34 ` [PATCH v4 32/42] ovl: port ovl_listxattr() " Christian Brauner
2025-11-17  9:34 ` [PATCH v4 33/42] ovl: introduce struct ovl_renamedata Christian Brauner
2025-11-17  9:34 ` [PATCH v4 34/42] ovl: refactor ovl_rename() Christian Brauner
2025-11-17  9:34 ` [PATCH v4 35/42] ovl: port ovl_rename() to cred guard Christian Brauner
2025-11-17 10:29   ` Linus Torvalds
2025-11-17 10:38     ` Amir Goldstein
2025-11-17  9:34 ` [PATCH v4 36/42] ovl: port ovl_copyfile() " Christian Brauner
2025-11-17  9:34 ` [PATCH v4 37/42] ovl: refactor ovl_lookup() Christian Brauner
2025-11-17  9:34 ` [PATCH v4 38/42] ovl: port ovl_lookup() to cred guard Christian Brauner
2025-11-17  9:34 ` [PATCH v4 39/42] ovl: port ovl_lower_positive() " Christian Brauner
2025-11-17  9:34 ` [PATCH v4 40/42] ovl: refactor ovl_fill_super() Christian Brauner
2025-11-17  9:34 ` [PATCH v4 41/42] ovl: port ovl_fill_super() to cred guard Christian Brauner
2025-11-17  9:34 ` [PATCH v4 42/42] ovl: remove ovl_revert_creds() Christian Brauner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).