Re: [PATCH v2 08/13] ceph: allow idmapped getattr inode op

From: Xiubo Li
Date: Thu Jun 01 2023 - 21:45:06 EST



On 5/24/23 23:33, Alexander Mikhalitsyn wrote:
From: Christian Brauner <christian.brauner@xxxxxxxxxx>

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

Cc: Jeff Layton <jlayton@xxxxxxxxxx>
Cc: Ilya Dryomov <idryomov@xxxxxxxxx>
Cc: ceph-devel@xxxxxxxxxxxxxxx
Signed-off-by: Christian Brauner <christian.brauner@xxxxxxxxxx>
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@xxxxxxxxxxxxx>
---
fs/ceph/inode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index 8e5f41d45283..2e988612ed6c 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -2465,7 +2465,7 @@ int ceph_getattr(struct mnt_idmap *idmap, const struct path *path,
return err;
}
- generic_fillattr(&nop_mnt_idmap, inode, stat);
+ generic_fillattr(idmap, inode, stat);
stat->ino = ceph_present_inode(inode);
/*

As mentioned in my comment in "[PATCH v2 10/13] ceph: allow idmapped setattr inode op". The getattr requests may fail too in the MDS when doing the client auth checking.

So for all the requests we should always get the correct UID/GID instead of only for the creating requests, then we can make sure that the idmap is only a feature in client side and then in cephfs MDS side it will always get a consistent UID/GID no matter what idmappings the clients are using.

Right ?

Thanks

- Xiubo