[SCM] Samba Shared Repository - branch v3-6-test updated

Jeremy Allison jra at samba.org
Thu Jan 13 11:15:53 MST 2011


The branch, v3-6-test has been updated
       via  10faf6c Fix bug #7909 - map SYNCHRONIZE acl permission statically in zfs_acl vfs module. (cherry picked from commit 75132a58c77257da5c90b92f08941dadb6aab00c)
      from  f53a322 s3: Fix some nonempty blank lines

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 10faf6c9fdb7798c5dfb6ca11fe36ead9d1a85c9
Author: Paul B. Henson <henson at acm.org>
Date:   Thu Jan 13 10:16:13 2011 -0800

    Fix bug #7909 - map SYNCHRONIZE acl permission statically in zfs_acl vfs module.
    (cherry picked from commit 75132a58c77257da5c90b92f08941dadb6aab00c)

-----------------------------------------------------------------------

Summary of changes:
 source3/modules/nfs4_acls.c  |    4 +++-
 source3/modules/vfs_zfsacl.c |    3 +++
 2 files changed, 6 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c
index 1913946..e2f9fe3 100644
--- a/source3/modules/nfs4_acls.c
+++ b/source3/modules/nfs4_acls.c
@@ -280,7 +280,9 @@ static bool smbacl4_nfs42win(TALLOC_CTX *mem_ctx, SMB4ACL_T *theacl, /* in */
 		DEBUG(10, ("mapped ace flags: 0x%x => 0x%x\n",
 		      ace->aceFlags, mapped_ace_flags));
 
-		mask = ace->aceMask;
+		/* Windows clients expect SYNC on acls to
+		   correctly allow rename. See bug #7909. */
+		mask = ace->aceMask | SMB_ACE4_SYNCHRONIZE;
 		init_sec_ace(&nt_ace_list[good_aces++], &sid,
 			ace->aceType, mask,
 			mapped_ace_flags);
diff --git a/source3/modules/vfs_zfsacl.c b/source3/modules/vfs_zfsacl.c
index 98c9bcf..8a2c378 100644
--- a/source3/modules/vfs_zfsacl.c
+++ b/source3/modules/vfs_zfsacl.c
@@ -124,6 +124,9 @@ static bool zfs_process_smbacl(files_struct *fsp, SMB4ACL_T *smbacl)
 		acebuf[i].a_type        = aceprop->aceType;
 		acebuf[i].a_flags       = aceprop->aceFlags;
 		acebuf[i].a_access_mask = aceprop->aceMask;
+		/* SYNC on acls is a no-op on ZFS.
+		   See bug #7909. */
+		acebuf[i].a_access_mask &= ~SMB_ACE4_SYNCHRONIZE;
 		acebuf[i].a_who         = aceprop->who.id;
 		if(aceprop->flags & SMB_ACE4_ID_SPECIAL) {
 			switch(aceprop->who.special_id) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list