author | Jiri Sasek <Jiri.Sasek@Sun.COM> |
Mon, 30 Jan 2012 18:04:00 -0800 | |
branch | s11-sru |
changeset 2243 | 4307245757f6 |
parent 264 | 84a67a54e8fd |
permissions | -rw-r--r-- |
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) { |