From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [PATCH iproute2-next] ipaddress: fix label matching Date: Wed, 11 Jul 2018 13:03:28 -0700 Message-ID: <20180711130328.1d5bc82f@xeon-e3> References: <20180711113603.16589-1-vincent@bernat.im> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, serhe.popovych@gmail.com To: Vincent Bernat Return-path: Received: from mail-pf0-f194.google.com ([209.85.192.194]:33729 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387401AbeGKUJ1 (ORCPT ); Wed, 11 Jul 2018 16:09:27 -0400 Received: by mail-pf0-f194.google.com with SMTP id b17-v6so19092670pfi.0 for ; Wed, 11 Jul 2018 13:03:32 -0700 (PDT) In-Reply-To: <20180711113603.16589-1-vincent@bernat.im> Sender: netdev-owner@vger.kernel.org List-ID: On Wed, 11 Jul 2018 13:36:03 +0200 Vincent Bernat wrote: > Since 9516823051ce, "ip addr show label lo:1" doesn't work > anymore (doesn't show any address, despite a matching label). > Reverting to return 0 instead of -1 fix the issue. > > However, the condition says: "if we filter by label [...] and the > label does NOT match the interface name". This makes little sense to > compare the label with the interface name. There is also a logic > around filter family being provided or not. The match against the > label is done by ifa_label_match_rta() in print_addrinfo() and > ipaddr_filter(). > > Just removing the condition makes "ip addr show" works as expected > with or without specifying a label, both when the label is matching > and not matching. It also works if we specify a label and the label is > the interface name. The flush operation also works as expected. > > Fixes: 9516823051ce ("ipaddress: Improve print_linkinfo()") > Signed-off-by: Vincent Bernat > --- > ip/ipaddress.c | 5 ----- > 1 file changed, 5 deletions(-) > > diff --git a/ip/ipaddress.c b/ip/ipaddress.c > index 5009bfe6d2e3..20ef6724944e 100644 > --- a/ip/ipaddress.c > +++ b/ip/ipaddress.c > @@ -837,11 +837,6 @@ int print_linkinfo(const struct sockaddr_nl *who, > if (!name) > return -1; > > - if (filter.label && > - (!filter.family || filter.family == AF_PACKET) && > - fnmatch(filter.label, name, 0)) > - return -1; > - > if (tb[IFLA_GROUP]) { > int group = rta_getattr_u32(tb[IFLA_GROUP]); > If this is a regression, it should go to iproute2 not iproute2-next. Surprised by the solution since it is removing code that was there before the commit you referenced in Fixes.