]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ovl: add override_creds cleanup guard extension for overlayfs
authorChristian Brauner <brauner@kernel.org>
Mon, 17 Nov 2025 09:33:32 +0000 (10:33 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 19 Nov 2025 20:58:19 +0000 (21:58 +0100)
Overlayfs plucks the relevant creds from the superblock. Extend the
override_creds cleanup class I added to override_creds_ovl which uses
the ovl_override_creds() function as initialization helper. Add
with_ovl_creds() based on this new class.

Link: https://patch.msgid.link/20251117-work-ovl-cred-guard-v4-1-b31603935724@kernel.org
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/overlayfs/overlayfs.h

index 746bc4ad7b37d1f297ed202c383e464605b13d9b..362a3485dc531a7cc78e7717d32d02ed25c8a468 100644 (file)
@@ -457,6 +457,11 @@ struct dentry *ovl_workdir(struct dentry *dentry);
 const struct cred *ovl_override_creds(struct super_block *sb);
 void ovl_revert_creds(const struct cred *old_cred);
 
+EXTEND_CLASS(override_creds, _ovl, ovl_override_creds(sb), struct super_block *sb)
+
+#define with_ovl_creds(sb) \
+       scoped_class(override_creds_ovl, __UNIQUE_ID(label), sb)
+
 static inline const struct cred *ovl_creds(struct super_block *sb)
 {
        return OVL_FS(sb)->creator_cred;