1 To use this patch, run these commands for a successful build:
3 patch -p1 <patches/adaptec_acl_mods.diff
5 ./configure --enable-acl-support
9 > Attached is a small patch which allows the preservation of the delete,
10 > chmod, and chown bits which Adaptec has added to XFS on their SnapOS NAS
11 > units. This is nice for backing up files between different NAS units
12 > and preserving all of the Samba ACLs.
14 > I'm not sure how useful this patch will be because I'm not sure if any
15 > other NAS vendors have standardized on their extensions to POSIX ACLs to
16 > support Samba in the same manner that Adaptec has. FWIW, though, this
17 > will allow you to preserve acls when copying between different Adaptec
18 > based NAS units running SnapOS.
20 I (Wayne) tweaked the patch to work with the latest source.
24 Fix a bug that could lose some bits when stripping some (supposedly)
33 +/* These are custom ACL bits used by Adaptec's modifications
34 + * to XFS on their SnapOS units. */
45 void SAFE_FREE(void *mem)
48 @@ -115,6 +127,9 @@ int sys_acl_get_access_bits(SMB_ACL_ENTR
49 if ((rc = acl_get_permset(entry_d, &permset)) != 0)
51 *bits = (acl_get_perm(permset, ACL_READ) ? 4 : 0)
52 + | (acl_get_perm(permset, ACL_CHOWN) ? 32 : 0)
53 + | (acl_get_perm(permset, ACL_CHMOD) ? 16 : 0)
54 + | (acl_get_perm(permset, ACL_DELETE) ? 8 : 0)
55 | (acl_get_perm(permset, ACL_WRITE) ? 2 : 0)
56 | (acl_get_perm(permset, ACL_EXECUTE) ? 1 : 0);
58 @@ -147,6 +162,12 @@ int sys_acl_set_access_bits(SMB_ACL_ENTR
59 if ((rc = acl_get_permset(entry, &permset)) != 0)
61 acl_clear_perms(permset);
63 + acl_add_perm(permset, ACL_CHOWN);
65 + acl_add_perm(permset, ACL_CHMOD);
67 + acl_add_perm(permset, ACL_DELETE);
69 acl_add_perm(permset, ACL_READ);
74 #define SMB_ACL_TYPE_ACCESS ACL_TYPE_ACCESS
75 #define SMB_ACL_TYPE_DEFAULT ACL_TYPE_DEFAULT
77 -#define SMB_ACL_VALID_NAME_BITS (4 | 2 | 1)
78 -#define SMB_ACL_VALID_OBJ_BITS (4 | 2 | 1)
79 +#define SMB_ACL_VALID_NAME_BITS (32 | 16 | 8 | 4 | 2 | 1)
80 +#define SMB_ACL_VALID_OBJ_BITS (32 | 16 | 8 | 4 | 2 | 1)
82 #define SMB_ACL_NEED_SORT