mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
ovl: port ovl_permission() to cred guard
Link: https://patch.msgid.link/20251117-work-ovl-cred-guard-v4-15-b31603935724@kernel.org Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
@@ -293,7 +293,6 @@ int ovl_permission(struct mnt_idmap *idmap,
|
||||
struct inode *upperinode = ovl_inode_upper(inode);
|
||||
struct inode *realinode;
|
||||
struct path realpath;
|
||||
const struct cred *old_cred;
|
||||
int err;
|
||||
|
||||
/* Careful in RCU walk mode */
|
||||
@@ -311,17 +310,15 @@ int ovl_permission(struct mnt_idmap *idmap,
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
old_cred = ovl_override_creds(inode->i_sb);
|
||||
if (!upperinode &&
|
||||
!special_file(realinode->i_mode) && mask & MAY_WRITE) {
|
||||
mask &= ~(MAY_WRITE | MAY_APPEND);
|
||||
/* Make sure mounter can read file for copy up later */
|
||||
mask |= MAY_READ;
|
||||
}
|
||||
err = inode_permission(mnt_idmap(realpath.mnt), realinode, mask);
|
||||
ovl_revert_creds(old_cred);
|
||||
|
||||
return err;
|
||||
with_ovl_creds(inode->i_sb)
|
||||
return inode_permission(mnt_idmap(realpath.mnt), realinode, mask);
|
||||
}
|
||||
|
||||
static const char *ovl_get_link(struct dentry *dentry,
|
||||
|
||||
Reference in New Issue
Block a user