Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / mdt / mdt_lib.c
index ec1463d..b3dc462 100644 (file)
@@ -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|