[SCM] Samba Shared Repository - branch v4-5-test updated
Karolin Seeger
kseeger at samba.org
Wed Sep 21 13:54:09 UTC 2016
The branch, v4-5-test has been updated
via 68302ce ctdb-recovery-helper: Add missing initialisation of ban_credits
via 7f0a86b lib: poll_funcs : poll_funcs_context_slot_find can select the wrong slot to replace.
via 6411b3d lib/poll_funcs: free contexts in poll_funcs_state_destructor()
via a69dae2 smbd: Reset O_NONBLOCK on open files
from dbbf8dc ctdb-protocol: Fix marshalling for GET_DB_SEQNUM control request
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-5-test
- Log -----------------------------------------------------------------
commit 68302ceb9cac6a1f79fa534a5830da9a0b5c0a3b
Author: Amitay Isaacs <amitay at gmail.com>
Date: Mon Sep 19 14:59:06 2016 +1000
ctdb-recovery-helper: Add missing initialisation of ban_credits
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12275
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
(cherry picked from commit 6b93b57921fad40cb3601888154c2f73a75fd590)
Autobuild-User(v4-5-test): Karolin Seeger <kseeger at samba.org>
Autobuild-Date(v4-5-test): Wed Sep 21 15:53:49 CEST 2016 on sn-devel-144
commit 7f0a86bbbb296da90dcb40dee16b4a68efa7b276
Author: Jeremy Allison <jra at samba.org>
Date: Mon Sep 19 11:47:22 2016 -0700
lib: poll_funcs : poll_funcs_context_slot_find can select the wrong slot to replace.
Look for an exact match first, before a free slot.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12272
Back-port from 085542fc93b3c603e8cda6e481e94d5fe2dfc669
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 6411b3dfbad88dc5f3c068c7a02a8332bdf4d29c
Author: Jeremy Allison <jra at samba.org>
Date: Mon Sep 19 11:42:05 2016 -0700
lib/poll_funcs: free contexts in poll_funcs_state_destructor()
This ensures the destructors get called in the proper order.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12272
Back-port from c132b78c484c14d255a98567e90b934b73ebf8c2
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit a69dae26d7a6dd4b1e3cc958c9fd05980668a5a3
Author: Volker Lendecke <vl at samba.org>
Date: Mon Aug 29 09:58:45 2016 +0200
smbd: Reset O_NONBLOCK on open files
See the comment inline :-)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=12268
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Simo <simo at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Thu Sep 15 20:21:41 CEST 2016 on sn-devel-144
(cherry picked from commit e69b17d603e5f09ac1e7ee05fc1f5ad67288c484)
-----------------------------------------------------------------------
Summary of changes:
ctdb/server/ctdb_recovery_helper.c | 1 +
lib/poll_funcs/poll_funcs_tevent.c | 17 ++++++++++++++++-
source3/smbd/open.c | 19 +++++++++++++++++++
3 files changed, 36 insertions(+), 1 deletion(-)
Changeset truncated at 500 lines:
diff --git a/ctdb/server/ctdb_recovery_helper.c b/ctdb/server/ctdb_recovery_helper.c
index 9e142cd..4e4a986 100644
--- a/ctdb/server/ctdb_recovery_helper.c
+++ b/ctdb/server/ctdb_recovery_helper.c
@@ -1400,6 +1400,7 @@ static struct tevent_req *collect_all_db_send(
state->pnn_list = pnn_list;
state->count = count;
state->caps = caps;
+ state->ban_credits = ban_credits;
state->db_id = db_id;
state->recdb = recdb;
state->index = 0;
diff --git a/lib/poll_funcs/poll_funcs_tevent.c b/lib/poll_funcs/poll_funcs_tevent.c
index 8fdf080..65adb2d 100644
--- a/lib/poll_funcs/poll_funcs_tevent.c
+++ b/lib/poll_funcs/poll_funcs_tevent.c
@@ -302,6 +302,9 @@ static int poll_funcs_state_destructor(struct poll_funcs_state *state)
for (i=0; i<state->num_watches; i++) {
TALLOC_FREE(state->watches[i]);
}
+ for (i=0; i<state->num_contexts; i++) {
+ TALLOC_FREE(state->contexts[i]);
+ }
return 0;
}
@@ -315,15 +318,27 @@ static bool poll_funcs_context_slot_find(struct poll_funcs_state *state,
struct poll_funcs_tevent_context **contexts;
unsigned i;
+ /* Look for an existing match first. */
for (i=0; i<state->num_contexts; i++) {
struct poll_funcs_tevent_context *ctx = state->contexts[i];
- if ((ctx == NULL) || (ctx->ev == ev)) {
+ if (ctx != NULL && ctx->ev == ev) {
*slot = i;
return true;
}
}
+ /* Now look for a free slot. */
+ for (i=0; i<state->num_contexts; i++) {
+ struct poll_funcs_tevent_context *ctx = state->contexts[i];
+
+ if (ctx == NULL) {
+ *slot = i;
+ return true;
+ }
+ }
+
+
contexts = talloc_realloc(state, state->contexts,
struct poll_funcs_tevent_context *,
state->num_contexts + 1);
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 2ae6f83..9d10d19 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -901,6 +901,25 @@ static NTSTATUS open_file(files_struct *fsp,
return status;
}
+ if (local_flags & O_NONBLOCK) {
+ /*
+ * GPFS can return ETIMEDOUT for pread on
+ * nonblocking file descriptors when files
+ * migrated to tape need to be recalled. I
+ * could imagine this happens elsehwere
+ * too. With blocking file descriptors this
+ * does not happen.
+ */
+ ret = set_blocking(fsp->fh->fd, true);
+ if (ret == -1) {
+ status = map_nt_error_from_unix(errno);
+ DBG_WARNING("Could not set fd to blocking: "
+ "%s\n", strerror(errno));
+ fd_close(fsp);
+ return status;
+ }
+ }
+
ret = SMB_VFS_FSTAT(fsp, &smb_fname->st);
if (ret == -1) {
/* If we have an fd, this stat should succeed. */
--
Samba Shared Repository
More information about the samba-cvs
mailing list