diff options
Diffstat (limited to 'fs/overlayfs/util.c')
| -rw-r--r-- | fs/overlayfs/util.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c index bde291623c8c..923d66d131c1 100644 --- a/fs/overlayfs/util.c +++ b/fs/overlayfs/util.c @@ -491,7 +491,7 @@ bool ovl_is_whiteout(struct dentry *dentry)  struct file *ovl_path_open(const struct path *path, int flags)  {  	struct inode *inode = d_inode(path->dentry); -	struct user_namespace *real_mnt_userns = mnt_user_ns(path->mnt); +	struct mnt_idmap *real_idmap = mnt_idmap(path->mnt);  	int err, acc_mode;  	if (flags & ~(O_ACCMODE | O_LARGEFILE)) @@ -508,12 +508,12 @@ struct file *ovl_path_open(const struct path *path, int flags)  		BUG();  	} -	err = inode_permission(real_mnt_userns, inode, acc_mode | MAY_OPEN); +	err = inode_permission(real_idmap, inode, acc_mode | MAY_OPEN);  	if (err)  		return ERR_PTR(err);  	/* O_NOATIME is an optimization, don't fail if not permitted */ -	if (inode_owner_or_capable(real_mnt_userns, inode)) +	if (inode_owner_or_capable(real_idmap, inode))  		flags |= O_NOATIME;  	return dentry_open(path, flags, current_cred()); @@ -1101,16 +1101,16 @@ void ovl_copyattr(struct inode *inode)  {  	struct path realpath;  	struct inode *realinode; -	struct user_namespace *real_mnt_userns; +	struct mnt_idmap *real_idmap;  	vfsuid_t vfsuid;  	vfsgid_t vfsgid;  	ovl_i_path_real(inode, &realpath);  	realinode = d_inode(realpath.dentry); -	real_mnt_userns = mnt_user_ns(realpath.mnt); +	real_idmap = mnt_idmap(realpath.mnt); -	vfsuid = i_uid_into_vfsuid(real_mnt_userns, realinode); -	vfsgid = i_gid_into_vfsgid(real_mnt_userns, realinode); +	vfsuid = i_uid_into_vfsuid(real_idmap, realinode); +	vfsgid = i_gid_into_vfsgid(real_idmap, realinode);  	inode->i_uid = vfsuid_into_kuid(vfsuid);  	inode->i_gid = vfsgid_into_kgid(vfsgid);  |