From: Volker Lendecke Date: Fri, 8 Dec 2017 16:18:33 +0000 (+0100) Subject: messaging: Don't do self-sends in messaging_send_all X-Git-Tag: talloc-2.1.11~254 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a3a4d9ccc09181885ef0b01db5fc5d306c8c7bf4;p=thirdparty%2Fsamba.git messaging: Don't do self-sends in messaging_send_all This leads to cleanupd doing endless MSG_SMB_UNLOCK calls, as it triggers itself in the send_all. This worked correctly before the serverid.tdb removal because cleanupd did not register in serverid.tdb (which was a bug, but it helped us there). Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/lib/messages.c b/source3/lib/messages.c index a0a3f9fb1ba..561616df6e4 100644 --- a/source3/lib/messages.c +++ b/source3/lib/messages.c @@ -857,6 +857,11 @@ static int send_all_fn(pid_t pid, void *private_data) struct send_all_state *state = private_data; NTSTATUS status; + if (pid == getpid()) { + DBG_DEBUG("Skip ourselves in messaging_send_all\n"); + return 0; + } + status = messaging_send_buf(state->msg_ctx, pid_to_procid(pid), state->msg_type, state->buf, state->len); if (!NT_STATUS_IS_OK(status)) {