Loading fs/overlayfs/dir.c +5 −3 Original line number Diff line number Diff line Loading @@ -540,7 +540,7 @@ static int ovl_create_or_link(struct dentry *dentry, struct inode *inode, struct ovl_cattr *attr, bool origin) { int err; const struct cred *old_cred; const struct cred *old_cred, *hold_cred = NULL; struct cred *override_cred; struct dentry *parent = dentry->d_parent; Loading Loading @@ -575,7 +575,7 @@ static int ovl_create_or_link(struct dentry *dentry, struct inode *inode, goto out_revert_creds; } } put_cred(override_creds(override_cred)); hold_cred = override_creds(override_cred); put_cred(override_cred); if (!ovl_dentry_is_whiteout(dentry)) Loading @@ -584,7 +584,9 @@ static int ovl_create_or_link(struct dentry *dentry, struct inode *inode, err = ovl_create_over_whiteout(dentry, inode, attr); } out_revert_creds: ovl_revert_creds(old_cred); ovl_revert_creds(old_cred ?: hold_cred); if (old_cred && hold_cred) put_cred(hold_cred); return err; } Loading Loading
fs/overlayfs/dir.c +5 −3 Original line number Diff line number Diff line Loading @@ -540,7 +540,7 @@ static int ovl_create_or_link(struct dentry *dentry, struct inode *inode, struct ovl_cattr *attr, bool origin) { int err; const struct cred *old_cred; const struct cred *old_cred, *hold_cred = NULL; struct cred *override_cred; struct dentry *parent = dentry->d_parent; Loading Loading @@ -575,7 +575,7 @@ static int ovl_create_or_link(struct dentry *dentry, struct inode *inode, goto out_revert_creds; } } put_cred(override_creds(override_cred)); hold_cred = override_creds(override_cred); put_cred(override_cred); if (!ovl_dentry_is_whiteout(dentry)) Loading @@ -584,7 +584,9 @@ static int ovl_create_or_link(struct dentry *dentry, struct inode *inode, err = ovl_create_over_whiteout(dentry, inode, attr); } out_revert_creds: ovl_revert_creds(old_cred); ovl_revert_creds(old_cred ?: hold_cred); if (old_cred && hold_cred) put_cred(hold_cred); return err; } Loading