btrfs: allow idmapped setattr inode op

Enable btrfs_setattr() to handle idmapped mounts. This is just a matter
of passing down the mount's userns.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Christian Brauner 2021-07-27 12:48:49 +02:00 committed by David Sterba
parent 98b6ab5fc0
commit d4d0946461

View File

@ -5392,7 +5392,7 @@ static int btrfs_setattr(struct user_namespace *mnt_userns, struct dentry *dentr
if (btrfs_root_readonly(root))
return -EROFS;
err = setattr_prepare(&init_user_ns, dentry, attr);
err = setattr_prepare(mnt_userns, dentry, attr);
if (err)
return err;
@ -5403,13 +5403,12 @@ static int btrfs_setattr(struct user_namespace *mnt_userns, struct dentry *dentr
}
if (attr->ia_valid) {
setattr_copy(&init_user_ns, inode, attr);
setattr_copy(mnt_userns, inode, attr);
inode_inc_iversion(inode);
err = btrfs_dirty_inode(inode);
if (!err && attr->ia_valid & ATTR_MODE)
err = posix_acl_chmod(&init_user_ns, inode,
inode->i_mode);
err = posix_acl_chmod(mnt_userns, inode, inode->i_mode);
}
return err;