path: root/xlators/system/posix-acl/src/posix-acl.h
diff options
authorSantosh Kumar Pradhan <>2013-09-19 12:01:38 +0530
committerAnand Avati <>2013-09-29 16:54:37 -0700
commite9554f7792d893f0ea8afe368829f9944ef52bdf (patch)
tree465039c76a2c87e2029c93c2fa3f288e7795254b /xlators/system/posix-acl/src/posix-acl.h
parent84fa8af38d2eab0f72349abb8136811bd3e96570 (diff)
gNFS: Incorrect NFS ACL encoding for XFS
Problem: Incorrect NFS ACL encoding causes "system.posix_acl_default" setxattr failure on bricks on XFS file system. XFS (potentially others?) doesn't understand when the 0x10 prefix is added to the ACL type field for default ACLs (which the Linux NFS client adds) which causes setfacl()->setxattr() to fail silently. NFS client adds NFS_ACL_DEFAULT(0x1000) for default ACL. FIX: Mask the prefix (added by NFS client) OFF, so the setfacl is not rejected when it hits the FS. Original patch by: "Richard Wareing" Change-Id: I17ad27d84f030cdea8396eb667ee031f0d41b396 BUG: 1009210 Signed-off-by: Santosh Kumar Pradhan <> Reviewed-on: Reviewed-by: Amar Tumballi <> Tested-by: Gluster Build System <> Reviewed-by: Anand Avati <>
Diffstat (limited to 'xlators/system/posix-acl/src/posix-acl.h')
1 files changed, 1 insertions, 49 deletions
diff --git a/xlators/system/posix-acl/src/posix-acl.h b/xlators/system/posix-acl/src/posix-acl.h
index f857571..c5e0196 100644
--- a/xlators/system/posix-acl/src/posix-acl.h
+++ b/xlators/system/posix-acl/src/posix-acl.h
@@ -11,58 +11,10 @@
#ifndef _POSIX_ACL_H
#define _POSIX_ACL_H
-#include <stdint.h>
#include "xlator.h"
#include "common-utils.h"
#include "byte-order.h"
-#define POSIX_ACL_READ (0x04)
-#define POSIX_ACL_WRITE (0x02)
-#define POSIX_ACL_EXECUTE (0x01)
-#define POSIX_ACL_USER_OBJ (0x01)
-#define POSIX_ACL_USER (0x02)
-#define POSIX_ACL_GROUP_OBJ (0x04)
-#define POSIX_ACL_GROUP (0x08)
-#define POSIX_ACL_MASK (0x10)
-#define POSIX_ACL_OTHER (0x20)
-#define POSIX_ACL_UNDEFINED_ID ((id_t)-1)
-struct posix_ace {
- uint16_t tag;
- uint16_t perm;
- uint32_t id;
-struct posix_acl {
- int refcnt;
- int count;
- struct posix_ace entries[];
-struct posix_acl_ctx {
- uid_t uid;
- gid_t gid;
- mode_t perm;
- struct posix_acl *acl_access;
- struct posix_acl *acl_default;
-struct posix_acl_conf {
- gf_lock_t acl_lock;
- uid_t super_uid;
- struct posix_acl *minimal_acl;
+#include "glusterfs-acl.h"
struct posix_acl *posix_acl_new (xlator_t *this, int entry_count);
struct posix_acl *posix_acl_ref (xlator_t *this, struct posix_acl *acl);