on 2022/4/18 11:04, Xiubo Li wrote: > > On 4/15/22 7:02 PM, Yang Xu wrote: >> Since vfs has stripped S_ISGID, we don't need this code any more. >> >> Signed-off-by: Yang Xu <xuyang2018.jy@xxxxxxxxxxx> >> --- >> fs/ceph/file.c | 4 ---- >> 1 file changed, 4 deletions(-) >> >> diff --git a/fs/ceph/file.c b/fs/ceph/file.c >> index 6c9e837aa1d3..8e3b99853333 100644 >> --- a/fs/ceph/file.c >> +++ b/fs/ceph/file.c >> @@ -651,10 +651,6 @@ static int ceph_finish_async_create(struct inode >> *dir, struct dentry *dentry, >> /* Directories always inherit the setgid bit. */ >> if (S_ISDIR(mode)) >> mode |= S_ISGID; >> - else if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP) && >> - !in_group_p(dir->i_gid) && >> - !capable_wrt_inode_uidgid(&init_user_ns, dir, CAP_FSETID)) >> - mode &= ~S_ISGID; > > Could you point me where has done this for ceph ? You can see the 6th patch, it added prepare_mode for tmpfile, open, mknodat, mkdirat in vfs. The prepare_mode does inode sgid strip and umask strip. Best Regards Yang Xu > > -- Xiubo > > >> } else { >> in.gid = cpu_to_le32(from_kgid(&init_user_ns, current_fsgid())); >> } >