[SCM] Samba Shared Repository - branch v4-4-test updated

Karolin Seeger kseeger at samba.org
Fri Sep 16 10:40:03 UTC 2016


The branch, v4-4-test has been updated
       via  e4e5018 ctdb-protocol: Fix marshalling for GET_DB_SEQNUM control request
       via  80e17c7 s3/smbd: in call_trans2qfilepathinfo call lstat when dealing with posix pathnames
       via  44107d9 ctdb-packaging: Fix systemd network dependency
      from  87a42e6 ctdb-daemon: Don't steal control structure before synchronous reply

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-4-test


- Log -----------------------------------------------------------------
commit e4e50182d886f68f9dcea90e4eed22b6feb23b06
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Tue Sep 13 16:05:14 2016 +1000

    ctdb-protocol: Fix marshalling for GET_DB_SEQNUM control request
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12259
    
    Even though database id is 32-bit, it's sent on wire as 64-bits.
    The database id is the first 32-bits on the wire.  This needs fixing
    eventually, but for now keep the same wire format.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>
    (cherry picked from commit bdff6255af113827340adc3da609e127503d9ba5)
    
    Autobuild-User(v4-4-test): Karolin Seeger <kseeger at samba.org>
    Autobuild-Date(v4-4-test): Fri Sep 16 12:39:00 CEST 2016 on sn-devel-144

commit 80e17c7c15413af1b9b0895979bd965d1f5bfa65
Author: Ralph Boehme <slow at samba.org>
Date:   Sun Sep 11 15:35:37 2016 +0200

    s3/smbd: in call_trans2qfilepathinfo call lstat when dealing with posix pathnames
    
    This might be an info level SMB_INFO_QUERY_ALL_EAS which is not covered
    by INFO_LEVEL_IS_UNIX(). If smb_fname is a symlink we would then stat it
    in POSIX context.
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=12256
    
    Signed-off-by: Ralph Boehme <slow at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit b13b3c11054f918f18841186a6efc5dedd2ffd66)

commit 44107d9d228617dedabbf0bd0961a82f4e88d078
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Sep 8 12:28:00 2016 +1000

    ctdb-packaging: Fix systemd network dependency
    
    https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ says:
    
      network.target has very little meaning during start-up. [...]
      Whether any network interfaces are already configured when it is
      reached is undefined. [...]
    
      network-online.target is a target that actively waits until the
      ne[t]work is "up",
    
    CTDB expects to be able to bind a socket to a node address and expects
    interfaces for public IP addresses to exist.  CTDB also doesn't expect
    time to jump, so also wait until time is synchronised.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12255
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Steve French <sfrench at samba.org>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Tested-by: Steve French <sfrench at samba.org>
    (cherry picked from commit 35dcaadc8ebc9ec80e04f1d2eee694ebc6914a31)

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

Summary of changes:
 ctdb/config/ctdb.service         |  2 +-
 ctdb/protocol/protocol_control.c | 14 ++++----------
 source3/smbd/trans2.c            |  7 ++++---
 3 files changed, 9 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/config/ctdb.service b/ctdb/config/ctdb.service
index ea37c30..63cdfa9 100644
--- a/ctdb/config/ctdb.service
+++ b/ctdb/config/ctdb.service
@@ -1,6 +1,6 @@
 [Unit]
 Description=CTDB
-After=network.target
+After=network-online.target time-sync.target
 
 [Service]
 Type=forking
diff --git a/ctdb/protocol/protocol_control.c b/ctdb/protocol/protocol_control.c
index e7487da..3a51b65 100644
--- a/ctdb/protocol/protocol_control.c
+++ b/ctdb/protocol/protocol_control.c
@@ -49,7 +49,6 @@ struct ctdb_reply_control_wire {
 static size_t ctdb_req_control_data_len(struct ctdb_req_control_data *cd)
 {
 	size_t len = 0;
-	uint64_t u64;
 
 	if (cd == NULL) {
 		return 0;
@@ -384,8 +383,7 @@ static size_t ctdb_req_control_data_len(struct ctdb_req_control_data *cd)
 		break;
 
 	case CTDB_CONTROL_GET_DB_SEQNUM:
-		u64 = cd->data.db_id;
-		len = ctdb_uint64_len(u64);
+		len = ctdb_uint64_len((uint64_t)cd->data.db_id);
 		break;
 
 	case CTDB_CONTROL_DB_SET_HEALTHY:
@@ -501,8 +499,6 @@ static size_t ctdb_req_control_data_len(struct ctdb_req_control_data *cd)
 static void ctdb_req_control_data_push(struct ctdb_req_control_data *cd,
 				       uint8_t *buf)
 {
-	uint64_t u64;
-
 	switch (cd->opcode) {
 	case CTDB_CONTROL_PROCESS_EXISTS:
 		ctdb_pid_push(cd->data.pid, buf);
@@ -724,8 +720,7 @@ static void ctdb_req_control_data_push(struct ctdb_req_control_data *cd,
 		break;
 
 	case CTDB_CONTROL_GET_DB_SEQNUM:
-		u64 = cd->data.db_id;
-		ctdb_uint64_push(u64, buf);
+		ctdb_uint32_push(cd->data.db_id, buf);
 		break;
 
 	case CTDB_CONTROL_DB_SET_HEALTHY:
@@ -824,7 +819,6 @@ static int ctdb_req_control_data_pull(uint8_t *buf, size_t buflen,
 				      struct ctdb_req_control_data *cd)
 {
 	int ret = 0;
-	uint64_t u64 = 0;
 
 	cd->opcode = opcode;
 
@@ -1103,8 +1097,8 @@ static int ctdb_req_control_data_pull(uint8_t *buf, size_t buflen,
 		break;
 
 	case CTDB_CONTROL_GET_DB_SEQNUM:
-		ret = ctdb_uint64_pull(buf, buflen, mem_ctx, &u64);
-		cd->data.db_id = (uint32_t)u64;
+		ret = ctdb_uint32_pull(buf, buflen, mem_ctx,
+				       &cd->data.db_id);
 		break;
 
 	case CTDB_CONTROL_DB_SET_HEALTHY:
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 09392a3..e3de61e 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -5700,7 +5700,8 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
 			}
 			if (info_level == SMB_QUERY_FILE_UNIX_BASIC ||
 					info_level == SMB_QUERY_FILE_UNIX_INFO2 ||
-					info_level == SMB_QUERY_FILE_UNIX_LINK) {
+					info_level == SMB_QUERY_FILE_UNIX_LINK ||
+					req->posix_pathnames) {
 				ucf_flags |= UCF_UNIX_NAME_LOOKUP;
 			}
 		}
@@ -5761,7 +5762,7 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
 				return;
 			}
 
-			if (INFO_LEVEL_IS_UNIX(info_level)) {
+			if (INFO_LEVEL_IS_UNIX(info_level) || req->posix_pathnames) {
 				/* Always do lstat for UNIX calls. */
 				if (SMB_VFS_LSTAT(conn, smb_fname_base) != 0) {
 					DEBUG(3,("call_trans2qfilepathinfo: "
@@ -5807,7 +5808,7 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
 			}
 		}
 
-		if (INFO_LEVEL_IS_UNIX(info_level)) {
+		if (INFO_LEVEL_IS_UNIX(info_level) || req->posix_pathnames) {
 			/* Always do lstat for UNIX calls. */
 			if (SMB_VFS_LSTAT(conn, smb_fname)) {
 				DEBUG(3,("call_trans2qfilepathinfo: "


-- 
Samba Shared Repository



More information about the samba-cvs mailing list