X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdt%2Fmdt_lib.c;h=b3dc46284daa2b3c8ca671188818456eddff1456;hb=feb80fe0c440f7790cc3afa53d048370374a81b1;hp=ec1463dd73821ded3458ae81b7b71c6159beeab2;hpb=303b4c4fc3a9183d550d6cd0ee631f4502174562;p=fs%2Flustre-release.git diff --git a/lustre/mdt/mdt_lib.c b/lustre/mdt/mdt_lib.c index ec1463d..b3dc462 100644 --- a/lustre/mdt/mdt_lib.c +++ b/lustre/mdt/mdt_lib.c @@ -243,7 +243,7 @@ static int new_init_ucred(struct mdt_thread_info *info, ucred_init_type_t type, /* remove fs privilege for non-root user */ if (ucred->mu_fsuid) - ucred->mu_cap = pud->pud_cap & ~CAP_FS_MASK; + ucred->mu_cap = pud->pud_cap & ~CFS_CAP_FS_MASK; else ucred->mu_cap = pud->pud_cap; ucred->mu_valid = UCRED_NEW; @@ -406,7 +406,7 @@ static int old_init_ucred(struct mdt_thread_info *info, /* remove fs privilege for non-root user */ if (uc->mu_fsuid) - uc->mu_cap = body->capability & ~CAP_FS_MASK; + uc->mu_cap = body->capability & ~CFS_CAP_FS_MASK; else uc->mu_cap = body->capability; uc->mu_valid = UCRED_OLD; @@ -446,7 +446,7 @@ static int old_init_ucred_reint(struct mdt_thread_info *info) /* remove fs privilege for non-root user */ if (uc->mu_fsuid) - uc->mu_cap &= ~CAP_FS_MASK; + uc->mu_cap &= ~CFS_CAP_FS_MASK; uc->mu_valid = UCRED_OLD; RETURN(0); @@ -683,6 +683,9 @@ static __u64 mdt_attr_valid_xlate(__u64 in, struct mdt_reint_record *rr, if (in & MDS_OPEN_OWNEROVERRIDE) ma->ma_attr_flags |= MDS_OPEN_OWNEROVERRIDE; + if (in & (ATTR_KILL_SUID|ATTR_KILL_SGID)) + ma->ma_attr_flags |= MDS_PERM_BYPASS; + /*XXX need ATTR_RAW?*/ in &= ~(ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_SIZE|ATTR_BLOCKS| ATTR_ATIME|ATTR_MTIME|ATTR_CTIME|ATTR_FROM_OPEN|