From: Xiubo Li <xiubli@redhat.com>
To: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Cc: brauner@kernel.org, stgraber@ubuntu.com,
linux-fsdevel@vger.kernel.org,
Christian Brauner <christian.brauner@ubuntu.com>,
Jeff Layton <jlayton@kernel.org>,
Ilya Dryomov <idryomov@gmail.com>,
ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 10/13] ceph: allow idmapped setattr inode op
Date: Fri, 2 Jun 2023 09:30:37 +0800 [thread overview]
Message-ID: <b3b1b8dc-9903-c4ff-0a63-9a31a311ff0b@redhat.com> (raw)
In-Reply-To: <20230524153316.476973-11-aleksandr.mikhalitsyn@canonical.com>
On 5/24/23 23:33, Alexander Mikhalitsyn wrote:
> From: Christian Brauner <christian.brauner@ubuntu.com>
>
> Enable __ceph_setattr() to handle idmapped mounts. This is just a matter
> of passing down the mount's idmapping.
>
> Cc: Jeff Layton <jlayton@kernel.org>
> Cc: Ilya Dryomov <idryomov@gmail.com>
> Cc: ceph-devel@vger.kernel.org
> Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
> Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
> ---
> fs/ceph/inode.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
> index 37e1cbfc7c89..f1f934439be0 100644
> --- a/fs/ceph/inode.c
> +++ b/fs/ceph/inode.c
> @@ -2050,6 +2050,13 @@ int __ceph_setattr(struct inode *inode, struct iattr *attr)
>
> dout("setattr %p issued %s\n", inode, ceph_cap_string(issued));
>
> + /*
> + * The attr->ia_{g,u}id members contain the target {g,u}id we're
> + * sending over the wire. The mount idmapping only matters when we
> + * create new filesystem objects based on the caller's mapped
> + * fs{g,u}id.
> + */
> + req->r_mnt_idmap = &nop_mnt_idmap;
For example with an idmapping 1000:0 and in the /mnt/idmapped_ceph/.
This means the "__ceph_setattr()" will always use UID 0 to set the
caller_uid, right ? If it is then the client auth checking for the
setattr requests in cephfs MDS will succeed, since the UID 0 is root.
But if you use a different idmapping, such as 1000:2000, it will fail.
So here IMO we should set it to 'idmap' too ?
Thanks
- Xiubo
> if (ia_valid & ATTR_UID) {
> dout("setattr %p uid %d -> %d\n", inode,
> from_kuid(&init_user_ns, inode->i_uid),
> @@ -2240,7 +2247,7 @@ int ceph_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
> if (ceph_inode_is_shutdown(inode))
> return -ESTALE;
>
> - err = setattr_prepare(&nop_mnt_idmap, dentry, attr);
> + err = setattr_prepare(idmap, dentry, attr);
> if (err != 0)
> return err;
>
> @@ -2255,7 +2262,7 @@ int ceph_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
> err = __ceph_setattr(inode, attr);
>
> if (err >= 0 && (attr->ia_valid & ATTR_MODE))
> - err = posix_acl_chmod(&nop_mnt_idmap, dentry, attr->ia_mode);
> + err = posix_acl_chmod(idmap, dentry, attr->ia_mode);
>
> return err;
> }
next prev parent reply other threads:[~2023-06-02 1:31 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-24 15:33 [PATCH v2 00/13] ceph: support idmapped mounts Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 01/13] fs: export mnt_idmap_get/mnt_idmap_put Alexander Mikhalitsyn
2023-06-02 1:16 ` Xiubo Li
2023-06-02 9:55 ` Aleksandr Mikhalitsyn
2023-06-02 12:40 ` Christian Brauner
2023-06-05 13:53 ` Christoph Hellwig
2023-06-05 14:06 ` Aleksandr Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 02/13] ceph: stash idmapping in mdsc request Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 03/13] ceph: handle idmapped mounts in create_request_message() Alexander Mikhalitsyn
2023-05-29 3:52 ` Xiubo Li
2023-05-31 16:32 ` Aleksandr Mikhalitsyn
2023-06-01 2:29 ` Xiubo Li
2023-06-01 18:29 ` Aleksandr Mikhalitsyn
2023-06-02 0:41 ` Xiubo Li
2023-06-02 10:01 ` Aleksandr Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 04/13] ceph: allow idmapped mknod inode op Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 05/13] ceph: allow idmapped symlink " Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 06/13] ceph: allow idmapped mkdir " Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 07/13] ceph: allow idmapped rename " Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 08/13] ceph: allow idmapped getattr " Alexander Mikhalitsyn
2023-06-02 1:43 ` Xiubo Li
2023-05-24 15:33 ` [PATCH v2 09/13] ceph: allow idmapped permission " Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 10/13] ceph: allow idmapped setattr " Alexander Mikhalitsyn
2023-06-02 1:30 ` Xiubo Li [this message]
2023-06-02 12:45 ` Aleksandr Mikhalitsyn
2023-06-02 12:53 ` Christian Brauner
2023-06-02 13:05 ` Aleksandr Mikhalitsyn
2023-06-02 13:08 ` Christian Brauner
2023-06-02 13:15 ` Aleksandr Mikhalitsyn
2023-06-07 15:28 ` Aleksandr Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 11/13] ceph/acl: allow idmapped set_acl " Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 12/13] ceph/file: allow idmapped atomic_open " Alexander Mikhalitsyn
2023-05-24 15:33 ` [PATCH v2 13/13] ceph: allow idmapped mounts Alexander Mikhalitsyn
2023-06-07 15:24 ` [PATCH v2 00/13] ceph: support " Aleksandr Mikhalitsyn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b3b1b8dc-9903-c4ff-0a63-9a31a311ff0b@redhat.com \
--to=xiubli@redhat.com \
--cc=aleksandr.mikhalitsyn@canonical.com \
--cc=brauner@kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=christian.brauner@ubuntu.com \
--cc=idryomov@gmail.com \
--cc=jlayton@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stgraber@ubuntu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®