Use the scoped ovl cred guard. Signed-off-by: Christian Brauner --- fs/overlayfs/super.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index e3781fccaef8..3b9b9b569e5c 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -1545,8 +1545,6 @@ static int do_ovl_fill_super(struct fs_context *fc, struct super_block *sb) 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; @@ -1555,20 +1553,16 @@ int ovl_fill_super(struct super_block *sb, struct fs_context *fc) ovl_set_d_op(sb); + if (!ofs->creator_cred) { err = -ENOMEM; + ofs->creator_cred = prepare_creds(); 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); - + with_ovl_creds(sb) err = do_ovl_fill_super(fc, sb); - ovl_revert_creds(old_cred); - out_err: if (err) { ovl_free_fs(ofs); -- 2.47.3