From patchwork Sun Mar 8 10:04:19 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Christophe Varoqui X-Patchwork-Id: 5961451 X-Patchwork-Delegate: christophe.varoqui@free.fr Return-Path: X-Original-To: patchwork-dm-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 0279A9F2A9 for ; Sun, 8 Mar 2015 10:09:15 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D8108203DB for ; Sun, 8 Mar 2015 10:09:13 +0000 (UTC) Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) (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 630EB20172 for ; Sun, 8 Mar 2015 10:09:12 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t28A4Pkb021410; Sun, 8 Mar 2015 06:04:27 -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 t28A4NuC029605 for ; Sun, 8 Mar 2015 06:04:23 -0400 Received: from mx1.redhat.com (ext-mx15.extmail.prod.ext.phx2.redhat.com [10.5.110.20]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t28A4NiL011005; Sun, 8 Mar 2015 06:04:23 -0400 Received: from mail-ig0-f177.google.com (mail-ig0-f177.google.com [209.85.213.177]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t28A4KES009672 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL); Sun, 8 Mar 2015 06:04:21 -0400 Received: by igal13 with SMTP id l13so13113439iga.1; Sun, 08 Mar 2015 03:04:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=T194o4jwHNnGDq2ubKHUMVFj4gKe0LcMLNEroPkfgao=; b=h4910lOL0TOw7FR7QbulhwMC+d3SBPyFnRjgKZMBVGtNlEDNtDiu9MO1FAaI+KF7kN FZpE5Q9KFI+ZF3I6XtCuqKVIhYycPqWtYTaUHzY6BjcPQ0CfOw0vL7TA3gvinFHqU6jg /x8uEX5bEUq8rnOpxXiZUY3kXoYS92qWKkP/VkRi4GuKwBLZPU9bNJGl0mLXlqI6exZs oGJ5I8hbFCoZ3d9eqJRBjXB42SJg8pg9WekobU02oDVBryrU4RsSJbjsBdcgV5+cPMwL yQ3hz18GI6clNyJfMA547QfUAQGSdSMToCHDR9oPLruPdCYrT2lJfXimxJ3PFh4jreca OSaQ== MIME-Version: 1.0 X-Received: by 10.50.66.141 with SMTP id f13mr13980043igt.9.1425809059917; Sun, 08 Mar 2015 03:04:19 -0700 (PDT) Received: by 10.36.59.3 with HTTP; Sun, 8 Mar 2015 03:04:19 -0700 (PDT) In-Reply-To: <1425785506-20419-1-git-send-email-bmarzins@redhat.com> References: <1425785506-20419-1-git-send-email-bmarzins@redhat.com> Date: Sun, 8 Mar 2015 11:04:19 +0100 X-Google-Sender-Auth: 2bO1DLVn50t6gvEIvd0xUzaseFA Message-ID: From: Christophe Varoqui To: Benjamin Marzinski X-RedHat-Spam-Score: -2.599 (BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, SPF_PASS) 209.85.213.177 mail-ig0-f177.google.com 209.85.213.177 mail-ig0-f177.google.com X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Scanned-By: MIMEDefang 2.68 on 10.5.110.20 X-loop: dm-devel@redhat.com Cc: device-mapper development Subject: Re: [dm-devel] [PATCH 00/15] Multipath patch resync X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk Reply-To: device-mapper development List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, HTML_MESSAGE,RCVD_IN_DNSWL_MED,T_DKIM_INVALID,T_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 All good and applied. Thanks. One minor glitch : building without LIBDM_API_DEFERRED defined leaves the dm_cancel_remove_partmaps() function without use, which emits the following build warning devmapper.c:35:12: warning: ‘dm_cancel_remove_partmaps’ declared ‘static’ but never defined [-Wunused-function] static int dm_cancel_remove_partmaps(const char * mapname); Would moving the function declaration in the #ifdef be fine with you ? { @@ -1134,9 +1132,15 @@ dm_remove_partmaps (const char * mapname, int need_sync, int deferred_remove) return do_foreach_partmaps(mapname, remove_partmap, &rd); } + #ifdef LIBDM_API_DEFERRED static int +dm_cancel_remove_partmaps(const char * mapname) { + return do_foreach_partmaps(mapname, cancel_remove_partmap, NULL); +} + +static int cancel_remove_partmap (char *name, void *unused) { if (dm_get_opencount(name)) @@ -1172,11 +1176,6 @@ out: return r; } -static int -dm_cancel_remove_partmaps(const char * mapname) { - return do_foreach_partmaps(mapname, cancel_remove_partmap, NULL); -} - int dm_cancel_deferred_remove (struct multipath *mpp) { Best regards, Christophe Varoqui OpenSVC On Sun, Mar 8, 2015 at 4:31 AM, Benjamin Marzinski wrote: > The first eight of these patches are resends of earlier patches, just > rebased with minor changes. The next two are minor changes, adding > multipath's -B option to mutipathd, and blacklisting vd.* devices. > The two after that allow multipath to read additional configuration > files in a configuration directory /etc/multipath/conf.d by default, > and then do some cleanup of the parser code that I noticed while > adding the configuration directories. The next patch adds two new > configuration parameters that allow multipathd to delay the > reintegration of paths that are failing repeatedly. The next one > fixes a hard to hit memory corruption bug, and the last one > updates the EMC builtin configuration to autodetect ALUA setups. > > Benjamin Marzinski (15): > correctly set partition delimiter on rename > libmultipath: fix sysfs_get_size bug > Revert "libmultipath: fixup strlcpy" > libmultipath: refactor partmaps code > multipathd: fix memory corruption issue > multipathd: add deferred_remove support > multipathd: don't buffer output with systemd > libmutipath: allow blanks in device blacklist > multipathd: read-only bindings > multipath: blacklist virtio-blk devices > multipath: enable configuration directory > libmultipath: cleanup parser code > multipathd: Add delayed path reintegration > Fix doublee free of alias after map add failure > libmultipath: autodetect ALUA CLARiiON configurations > > libmultipath/Makefile | 6 + > libmultipath/blacklist.c | 18 ++- > libmultipath/checkers.c | 1 + > libmultipath/checkers.h | 9 ++ > libmultipath/config.c | 69 ++++++++++- > libmultipath/config.h | 12 ++ > libmultipath/configure.c | 3 + > libmultipath/defaults.h | 3 + > libmultipath/devmapper.c | 284 > +++++++++++++++++++++++++++++---------------- > libmultipath/devmapper.h | 11 +- > libmultipath/dict.c | 126 +++++++++++++++++--- > libmultipath/dict.h | 1 + > libmultipath/hwtable.c | 2 + > libmultipath/parser.c | 173 ++++++++------------------- > libmultipath/parser.h | 9 +- > libmultipath/print.c | 2 + > libmultipath/propsel.c | 58 +++++++++ > libmultipath/propsel.h | 3 + > libmultipath/structs.h | 17 +++ > libmultipath/structs_vec.c | 3 +- > libmultipath/sysfs.c | 2 +- > libmultipath/util.c | 3 +- > multipath.conf.annotated | 80 +++++++++++++ > multipath.conf.defaults | 7 +- > multipath/multipath.conf.5 | 54 +++++++++ > multipathd/main.c | 86 ++++++++++---- > multipathd/multipathd.8 | 5 + > 27 files changed, 761 insertions(+), 286 deletions(-) > > -- > 1.8.3.1 > > --- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c index 69491a3..458841f 100644 --- a/libmultipath/devmapper.c +++ b/libmultipath/devmapper.c @@ -32,8 +32,6 @@ #define UUID_PREFIX "mpath-" #define UUID_PREFIX_LEN 6 -static int dm_cancel_remove_partmaps(const char * mapname); - #ifndef LIBDM_API_COOKIE static inline int dm_task_set_cookie(struct dm_task *dmt, uint32_t *c, int a)