From patchwork Wed Apr 27 11:10:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Reinecke X-Patchwork-Id: 8955461 Return-Path: X-Original-To: patchwork-dm-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id A9019BF440 for ; Wed, 27 Apr 2016 11:15:29 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id ADB1F20279 for ; Wed, 27 Apr 2016 11:15:28 +0000 (UTC) Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 262502028D for ; Wed, 27 Apr 2016 11:15:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3RBBvvO012445; Wed, 27 Apr 2016 07:11:57 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id u3RBBKIW012389 for ; Wed, 27 Apr 2016 07:11:20 -0400 Received: from mx1.redhat.com (ext-mx04.extmail.prod.ext.phx2.redhat.com [10.5.110.28]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3RBBKgD008887 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 27 Apr 2016 07:11:20 -0400 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 377AF85541; Wed, 27 Apr 2016 11:11:19 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id E9DC0ADB8; Wed, 27 Apr 2016 11:11:09 +0000 (UTC) From: Hannes Reinecke To: Christophe Varoqui Date: Wed, 27 Apr 2016 13:10:44 +0200 Message-Id: <1461755458-29225-44-git-send-email-hare@suse.de> In-Reply-To: <1461755458-29225-1-git-send-email-hare@suse.de> References: <1461755458-29225-1-git-send-email-hare@suse.de> X-RedHat-Spam-Score: -0.607 (BAYES_50, DCC_REPUT_00_12, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, SPF_PASS) 195.135.220.15 mx2.suse.de 195.135.220.15 mx2.suse.de X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Scanned-By: MIMEDefang 2.75 on 10.5.110.28 X-loop: dm-devel@redhat.com Cc: Hannes Reinecke , dm-devel@redhat.com, Mike Snitzer Subject: [dm-devel] [PATCH 43/57] multipathd: set uxsock_timeout after reconfiguration X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP We should be setting the global variable 'uxsock_timeout' after reconfiguration, not from within the uxsock_listen() function. Signed-off-by: Hannes Reinecke --- multipathd/main.c | 5 +++++ multipathd/main.h | 1 + multipathd/uxlsnr.c | 15 ++++----------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/multipathd/main.c b/multipathd/main.c index c56672a..ebb9a50 100644 --- a/multipathd/main.c +++ b/multipathd/main.c @@ -34,6 +34,8 @@ static int use_watchdog; #endif +int uxsock_timeout; + /* * libmultipath */ @@ -1700,6 +1702,7 @@ reconfigure (struct vectors * vecs) } else { conf = old; } + uxsock_timeout = conf->uxsock_timeout; running_state = DAEMON_RUNNING; @@ -1933,6 +1936,8 @@ child (void * param) if (load_config(DEFAULT_CONFIGFILE, udev)) goto failed; + uxsock_timeout = conf->uxsock_timeout; + dm_drv_version(conf->version, TGT_MPATH); if (init_checkers()) { condlog(0, "failed to initialize checkers"); diff --git a/multipathd/main.h b/multipathd/main.h index 2f706d2..d1a6d71 100644 --- a/multipathd/main.h +++ b/multipathd/main.h @@ -15,6 +15,7 @@ struct prout_param_descriptor; struct prin_resp; extern pid_t daemon_pid; +extern int uxsock_timeout; void exit_daemon(void); const char * daemon_status(void); diff --git a/multipathd/uxlsnr.c b/multipathd/uxlsnr.c index 77efa8a..9912e00 100644 --- a/multipathd/uxlsnr.c +++ b/multipathd/uxlsnr.c @@ -131,7 +131,7 @@ void uxsock_cleanup(void *arg) void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) { int ux_sock; - int rlen, timeout; + int rlen; char *inbuf; char *reply; sigset_t mask; @@ -164,14 +164,6 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) struct client *c, *tmp; int i, poll_count, num_clients; - /* - * Store configuration timeout; - * configuration might change during - * the call to 'reconfigure'. - */ - if (conf) - timeout = conf->uxsock_timeout; - /* setup for a poll */ pthread_mutex_lock(&client_lock); num_clients = 0; @@ -247,7 +239,8 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) } if (gettimeofday(&start_time, NULL) != 0) start_time.tv_sec = 0; - if (recv_packet(c->fd, &inbuf, timeout) != 0) { + if (recv_packet(c->fd, &inbuf, + uxsock_timeout) != 0) { dead_client(c); continue; } @@ -268,7 +261,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) reply = NULL; } check_timeout(start_time, inbuf, - timeout); + uxsock_timeout); FREE(inbuf); } }