From patchwork Fri Jun 8 10:20:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Wilck X-Patchwork-Id: 10454099 X-Patchwork-Delegate: christophe.varoqui@free.fr Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 109DE6037F for ; Fri, 8 Jun 2018 10:21:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0C18029514 for ; Fri, 8 Jun 2018 10:21:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 009C42951C; Fri, 8 Jun 2018 10:21:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 968B029514 for ; Fri, 8 Jun 2018 10:21:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9022637E60; Fri, 8 Jun 2018 10:21:50 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C12160851; Fri, 8 Jun 2018 10:21:50 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E6D124CA85; Fri, 8 Jun 2018 10:21:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w58ALVYV017889 for ; Fri, 8 Jun 2018 06:21:31 -0400 Received: by smtp.corp.redhat.com (Postfix) id 96AA23001A6D; Fri, 8 Jun 2018 10:21:31 +0000 (UTC) Delivered-To: dm-devel@redhat.com Received: from mx1.redhat.com (ext-mx14.extmail.prod.ext.phx2.redhat.com [10.5.110.43]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AF8903001A41; Fri, 8 Jun 2018 10:21:29 +0000 (UTC) Received: from smtp2.provo.novell.com (smtp2.provo.novell.com [137.65.250.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8181A308FB82; Fri, 8 Jun 2018 10:21:28 +0000 (UTC) Received: from apollon.suse.de.de (prv-ext-foundry1int.gns.novell.com [137.65.251.240]) by smtp2.provo.novell.com with ESMTP (TLS encrypted); Fri, 08 Jun 2018 04:21:25 -0600 From: Martin Wilck To: Christophe Varoqui Date: Fri, 8 Jun 2018 12:20:27 +0200 Message-Id: <20180608102041.22904-15-mwilck@suse.com> In-Reply-To: <20180608102041.22904-1-mwilck@suse.com> References: <20180608102041.22904-1-mwilck@suse.com> X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 207 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Fri, 08 Jun 2018 10:21:28 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Fri, 08 Jun 2018 10:21:28 +0000 (UTC) for IP:'137.65.250.81' DOMAIN:'smtp2.provo.novell.com' HELO:'smtp2.provo.novell.com' FROM:'mwilck@suse.com' RCPT:'' X-RedHat-Spam-Score: -2.301 (RCVD_IN_DNSWL_MED, SPF_PASS) 137.65.250.81 smtp2.provo.novell.com 137.65.250.81 smtp2.provo.novell.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.43 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-loop: dm-devel@redhat.com Cc: dm-devel@redhat.com, Xose Vazquez Perez , Martin Wilck Subject: [dm-devel] [PATCH 14/28] libmultipath: don't merge hwentries by regex 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-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 08 Jun 2018 10:21:51 +0000 (UTC) X-Virus-Scanned: ClamAV using ClamSMTP Merging by regular expression is wrong, because regular expressions can't be matched against each other. Unexpected results for hardware properties may result. Don't do it any more. Signed-off-by: Martin Wilck --- libmultipath/config.c | 8 +------- tests/hwtable.c | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/libmultipath/config.c b/libmultipath/config.c index 89aad15a..713ac7f3 100644 --- a/libmultipath/config.c +++ b/libmultipath/config.c @@ -470,18 +470,12 @@ restart: free_hwe(hwe2); continue; } - if (hwe_regmatch(hwe1, hwe2->vendor, - hwe2->product, hwe2->revision)) - continue; - /* dup */ - log_match(hwe1, hwe2->vendor, - hwe2->product, hwe2->revision); - merge_hwe(hwe2, hwe1); if (hwe_strmatch(hwe2, hwe1) == 0) { condlog(4, "%s: removing hwentry %s:%s:%s", __func__, hwe1->vendor, hwe1->product, hwe1->revision); vector_del_slot(hw, i); + merge_hwe(hwe2, hwe1); free_hwe(hwe1); n -= 1; /* diff --git a/tests/hwtable.c b/tests/hwtable.c index 8b2ed95d..15f364e4 100644 --- a/tests/hwtable.c +++ b/tests/hwtable.c @@ -1138,15 +1138,10 @@ static int setup_2_ident_not_self_matching_re_hwe_dir(void **state) * Two different non-trivial regexes kv1, kv2. The 1st one matches the 2nd, but * it doesn't match all possible strings matching the second. * ("ba[zy]" matches regex "ba[[rxy]", but "baz" does not). - * This causes the first entry to be merged into the second, but both entries - * to be kept. * * Expected: Devices matching both regexes get properties from both, kv2 * taking precedence. Devices matching just one regex get properties from * that one regex only. - * - * Current: behaves as expected, except for devices that match only kv2. - * Those get properties from kv1, too. */ static void test_2_matching_res_hwe_dir(const struct hwt_state *hwt) { @@ -1168,8 +1163,7 @@ static void test_2_matching_res_hwe_dir(const struct hwt_state *hwt) pp = mock_path_flags(vnd_foo.value, prd_baz.value, USE_GETUID); TEST_PROP(prio_name(&pp->prio), prio_hds.value); TEST_PROP(pp->getuid, gui_foo.value); - TEST_PROP_BROKEN(_checker, pp->checker.name, - chk_hp.value, DEFAULT_CHECKER); + TEST_PROP(pp->checker.name, DEFAULT_CHECKER); } static int setup_2_matching_res_hwe_dir(void **state)