summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-11-17 10:34:12 +0100
committerChristian Brauner <brauner@kernel.org>2025-11-19 21:58:25 +0100
commit217e78d1b7eccf53d9e4fb3dedf7168b880bbcae (patch)
tree389dcb2183fd85bd867060119bca7a6679202d39
parentfc95cda6739381123ee8c53ab0b880b9853cb8f0 (diff)
ovl: port ovl_fill_super() to cred guard
Use the scoped ovl cred guard. Link: https://patch.msgid.link/20251117-work-ovl-cred-guard-v4-41-b31603935724@kernel.org Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/overlayfs/super.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index a3e54db441bd..28b2f707cfbc 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -1540,8 +1540,6 @@ out_free_oe:
int ovl_fill_super(struct super_block *sb, struct fs_context *fc)
{
struct ovl_fs *ofs = sb->s_fs_info;
- const struct cred *old_cred = NULL;
- struct cred *cred;
int err;
err = -EIO;
@@ -1550,19 +1548,15 @@ int ovl_fill_super(struct super_block *sb, struct fs_context *fc)
ovl_set_d_op(sb);
- err = -ENOMEM;
- if (!ofs->creator_cred)
- ofs->creator_cred = cred = prepare_creds();
- else
- cred = (struct cred *)ofs->creator_cred;
- if (!cred)
- goto out_err;
-
- old_cred = ovl_override_creds(sb);
-
- err = ovl_fill_super_creds(fc, sb);
+ if (!ofs->creator_cred) {
+ err = -ENOMEM;
+ ofs->creator_cred = prepare_creds();
+ if (!ofs->creator_cred)
+ goto out_err;
+ }
- ovl_revert_creds(old_cred);
+ with_ovl_creds(sb)
+ err = ovl_fill_super_creds(fc, sb);
out_err:
if (err) {