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

Karolin Seeger kseeger at samba.org
Fri Aug 5 11:18:06 UTC 2016

The branch, v4-3-test has been updated
       via  358c3a0 ctdb-scripts: Fix regression in updateip code
       via  5282acf async_req: make async_connect_send() "reentrant"
      from  cf920bc vfs_acl_xattr: objects without NT ACL xattr


- Log -----------------------------------------------------------------
commit 358c3a00697f5f3ae4e4dd80b55c538b2d6f996d
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Dec 18 15:33:38 2015 +1100

    ctdb-scripts: Fix regression in updateip code
    Regression introduced in commit
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12106
    (cherry picked from commit d8e4c5a468286ecc1c38ecd66a3606e84db02373)
    Autobuild-User(v4-3-test): Karolin Seeger <kseeger at samba.org>
    Autobuild-Date(v4-3-test): Fri Aug  5 13:17:21 CEST 2016 on sn-devel-104

commit 5282acfe01dde280e89fdcae667fdb1dd302cac0
Author: Ralph Boehme <slow at samba.org>
Date:   Wed Aug 3 15:00:45 2016 +0200

    async_req: make async_connect_send() "reentrant"
    Allow callers to pass in socket fds that where already passed to an
    earlier call of async_connect_send(). Callers expect this behaviour and
    it was working until 05d4dbda8357712cb81008e0d611fdb0e7239587 broke it.
    The proper fix would be to change callers to close the fd and start from
    scratch with a fresh socket.
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=12105
    Signed-off-by: Ralph Boehme <slow at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Autobuild-User(master): Ralph Böhme <slow at samba.org>
    Autobuild-Date(master): Thu Aug  4 05:03:21 CEST 2016 on sn-devel-144
    (cherry picked from commit 9c6a4ea2788808bdcc7bfea798d838ea56c3b5ec)


Summary of changes:
 ctdb/config/events.d/10.interface |  2 +-
 lib/async_req/async_sock.c        | 16 +++++++++++++---
 2 files changed, 14 insertions(+), 4 deletions(-)

Changeset truncated at 500 lines:

diff --git a/ctdb/config/events.d/10.interface b/ctdb/config/events.d/10.interface
index acc0fc8..063f091 100755
--- a/ctdb/config/events.d/10.interface
+++ b/ctdb/config/events.d/10.interface
@@ -291,7 +291,7 @@ case "$1" in
-	get_iface_ip_maskbits_family "$_oiface" "$ip" "$maskbits"
+	get_iface_ip_maskbits_family "$_oiface" "$_ip" "$_maskbits"
 	# we do an extra delete to cope with the script being killed
diff --git a/lib/async_req/async_sock.c b/lib/async_req/async_sock.c
index c0ad8f3..a9e84d2 100644
--- a/lib/async_req/async_sock.c
+++ b/lib/async_req/async_sock.c
@@ -128,11 +128,21 @@ struct tevent_req *async_connect_send(
-	 * The only errno indicating that the connect is still in
-	 * flight is EINPROGRESS, everything else is an error
+	 * The only errno indicating that an initial connect is still
+	 * in flight is EINPROGRESS.
+	 *
+	 * We get EALREADY when someone calls us a second time for a
+	 * given fd and the connect is still in flight (and returned
+	 * EINPROGRESS the first time).
+	 *
+	 * This allows callers like open_socket_out_send() to reuse
+	 * fds and call us with an fd for which the connect is still
+	 * in flight. The proper thing to do for callers would be
+	 * closing the fd and starting from scratch with a fresh
+	 * socket.
-	if (errno != EINPROGRESS) {
+	if (errno != EINPROGRESS && errno != EALREADY) {
 		tevent_req_error(req, errno);
 		return tevent_req_post(req, ev);

Samba Shared Repository

More information about the samba-cvs mailing list