components/samba/samba/patches/ace4-synchronize.patch
author Jiri Sasek <Jiri.Sasek@Sun.COM>
Mon, 30 Jan 2012 18:04:00 -0800
branchs11-sru
changeset 2243 4307245757f6
parent 264 84a67a54e8fd
permissions -rw-r--r--
7119845 Samba 3.5.10 can not use the system kerberos keytab. 7121739 Reorganize Samba source patches to change-set manner.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2243
4307245757f6 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     1
7011577 Impossible to rename a file on a ZFS filesystem when installing 146364-01 (Samba 3.5.5)
4307245757f6 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     2
Fix bug #7909 - map SYNCHRONIZE acl permission statically in zfs_acl vfs module.
4307245757f6 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     3
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
     4
diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
     5
index 1913946..e2f9fe3 100644
2243
4307245757f6 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     6
--- a/source3/modules/nfs4_acls.c
4307245757f6 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     7
+++ b/source3/modules/nfs4_acls.c
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
     8
@@ -280,7 +280,9 @@ static bool smbacl4_nfs42win(TALLOC_CTX *mem_ctx, SMB4ACL_T *theacl, /* in */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
     9
 		DEBUG(10, ("mapped ace flags: 0x%x => 0x%x\n",
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    10
 		      ace->aceFlags, mapped_ace_flags));
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    11
 
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    12
-		mask = ace->aceMask;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    13
+		/* Windows clients expect SYNC on acls to
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    14
+		   correctly allow rename. See bug #7909. */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    15
+		mask = ace->aceMask | SMB_ACE4_SYNCHRONIZE;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    16
 		init_sec_ace(&nt_ace_list[good_aces++], &sid,
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    17
 			ace->aceType, mask,
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    18
 			mapped_ace_flags);
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    19
diff --git a/source3/modules/vfs_zfsacl.c b/source3/modules/vfs_zfsacl.c
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    20
index 98c9bcf..8a2c378 100644
2243
4307245757f6 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    21
--- a/source3/modules/vfs_zfsacl.c
4307245757f6 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    22
+++ b/source3/modules/vfs_zfsacl.c
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    23
@@ -124,6 +124,9 @@ static bool zfs_process_smbacl(files_struct *fsp, SMB4ACL_T *smbacl)
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    24
 		acebuf[i].a_type        = aceprop->aceType;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    25
 		acebuf[i].a_flags       = aceprop->aceFlags;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    26
 		acebuf[i].a_access_mask = aceprop->aceMask;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    27
+		/* SYNC on acls is a no-op on ZFS.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    28
+		   See bug #7909. */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    29
+		acebuf[i].a_access_mask &= ~SMB_ACE4_SYNCHRONIZE;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    30
 		acebuf[i].a_who         = aceprop->who.id;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    31
 		if(aceprop->flags & SMB_ACE4_ID_SPECIAL) {
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    32
 			switch(aceprop->who.special_id) {