mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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;
>   }


  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®