From 217e78d1b7eccf53d9e4fb3dedf7168b880bbcae Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Mon, 17 Nov 2025 10:34:12 +0100 Subject: [PATCH] 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 Signed-off-by: Christian Brauner --- fs/overlayfs/super.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index a3e54db441bd3..28b2f707cfbc1 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) { -- 2.47.3