[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1042-g2539d67

Tim Prouty tprouty at samba.org
Sat Feb 21 00:46:19 GMT 2009


The branch, master has been updated
       via  2539d678f54d09577d5c86fae1d6d43175bfca96 (commit)
       via  a04bb5f9a267c6945db6ff25e16d15f7f813aaaf (commit)
       via  5300dc62888dfd36479353f4a6ea5cb52728c754 (commit)
      from  87a4c09b9bd37a967abcf874888a5d5161e7434f (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 2539d678f54d09577d5c86fae1d6d43175bfca96
Author: Zack Kirsch <zack.kirsch at isilon.com>
Date:   Fri Feb 20 15:29:29 2009 -0800

    s4 torture: Add comment to clarify test

commit a04bb5f9a267c6945db6ff25e16d15f7f813aaaf
Author: Zack Kirsch <zack.kirsch at isilon.com>
Date:   Fri Feb 20 15:22:15 2009 -0800

    s3 BRL: Add more clarifying comments and add implied logic to make conditional more clear

commit 5300dc62888dfd36479353f4a6ea5cb52728c754
Author: Zack Kirsch <zack.kirsch at isilon.com>
Date:   Fri Feb 20 15:20:39 2009 -0800

    s3 OneFS: Add debugging for createfile_flags

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

Summary of changes:
 source3/locking/brlock.c         |    8 ++++++--
 source3/modules/onefs_system.c   |   27 +++++++++++++++------------
 source4/torture/raw/samba3misc.c |    3 +++
 3 files changed, 24 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c
index d12c4af..aa522ac 100644
--- a/source3/locking/brlock.c
+++ b/source3/locking/brlock.c
@@ -74,6 +74,7 @@ bool brl_same_context(const struct lock_context *ctx1,
 static bool brl_overlap(const struct lock_struct *lck1,
                         const struct lock_struct *lck2)
 {
+	/* XXX Remove for Win7 compatibility. */
 	/* this extra check is not redundent - it copes with locks
 	   that go beyond the end of 64 bit file space */
 	if (lck1->size != 0 &&
@@ -105,8 +106,11 @@ static bool brl_conflict(const struct lock_struct *lck1,
 		return False;
 	}
 
-	if (brl_same_context(&lck1->context, &lck2->context) &&
-	    lck2->lock_type == READ_LOCK && lck1->fnum == lck2->fnum) {
+	/* A READ lock can stack on top of a WRITE lock if they have the same
+	 * context & fnum. */
+	if (lck1->lock_type == WRITE_LOCK && lck2->lock_type == READ_LOCK &&
+	    brl_same_context(&lck1->context, &lck2->context) &&
+	    lck1->fnum == lck2->fnum) {
 		return False;
 	}
 
diff --git a/source3/modules/onefs_system.c b/source3/modules/onefs_system.c
index 6f93d9f..3a86b4b 100644
--- a/source3/modules/onefs_system.c
+++ b/source3/modules/onefs_system.c
@@ -123,17 +123,29 @@ int onefs_sys_create_file(connection_struct *conn,
 	/* Convert samba dos flags to UF_DOS_* attributes. */
 	onefs_dos_attributes = dos_attributes_to_stat_dos_flags(dos_flags);
 
+	/**
+	 * Deal with kernel creating Default ACLs. (Isilon bug 47447.)
+	 *
+	 * 1) "nt acl support = no", default_acl = no
+	 * 2) "inherit permissions = yes", default_acl = no
+	 */
+	if (lp_nt_acl_support(SNUM(conn)) && !lp_inherit_perms(SNUM(conn)))
+		cf_flags = cf_flags_or(cf_flags, CF_FLAGS_DEFAULT_ACL);
+
 	DEBUG(10,("onefs_sys_create_file: base_fd = %d, "
-		  "open_access_mask = 0x%x, flags = 0x%x, mode = 0x%x, "
+		  "open_access_mask = 0x%x, flags = 0x%x, mode = 0%o, "
 		  "desired_oplock = %s, id = 0x%x, secinfo = 0x%x, sd = %p, "
-		  "dos_attributes = 0x%x, path = %s\n", base_fd,
+		  "dos_attributes = 0x%x, path = %s, "
+		  "default_acl=%s\n", base_fd,
 		  (unsigned int)open_access_mask,
 		  (unsigned int)flags,
 		  (unsigned int)mode,
 		  onefs_oplock_str(onefs_oplock),
 		  (unsigned int)id,
 		  (unsigned int)secinfo, sd,
-		  (unsigned int)onefs_dos_attributes, path));
+		  (unsigned int)onefs_dos_attributes, path,
+		  cf_flags_and_bool(cf_flags, CF_FLAGS_DEFAULT_ACL) ?
+		      "true" : "false"));
 
 	/* Initialize smlock struct for files/dirs but not internal opens */
 	if (!(oplock_request & INTERNAL_OPEN_ONLY)) {
@@ -144,15 +156,6 @@ int onefs_sys_create_file(connection_struct *conn,
 
 	smlock_dump(10, psml);
 
-	/**
-	 * Deal with kernel creating Default ACLs. (Isilon bug 47447.)
-	 *
-	 * 1) "nt acl support = no", default_acl = no
-	 * 2) "inherit permissions = yes", default_acl = no
-	 */
-	if (lp_nt_acl_support(SNUM(conn)) && !lp_inherit_perms(SNUM(conn)))
-		cf_flags = cf_flags_or(cf_flags, CF_FLAGS_DEFAULT_ACL);
-
 	ret_fd = ifs_createfile(base_fd, path,
 	    (enum ifs_ace_rights)open_access_mask, flags & ~O_ACCMODE, mode,
 	    onefs_oplock, id, psml, secinfo, pifs_sd, onefs_dos_attributes,
diff --git a/source4/torture/raw/samba3misc.c b/source4/torture/raw/samba3misc.c
index 8cdccb3..c4c790c 100644
--- a/source4/torture/raw/samba3misc.c
+++ b/source4/torture/raw/samba3misc.c
@@ -672,6 +672,9 @@ bool torture_samba3_caseinsensitive(struct torture_context *torture)
 /*
  * Check that Samba3 correctly deals with conflicting posix byte range locks
  * on an underlying file
+ *
+ * Note: This test depends on "posix locking = yes".
+ * Note: To run this test, use "--option=torture:localdir=<LOCALDIR>"
  */
 
 bool torture_samba3_posixtimedlock(struct torture_context *tctx)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list