Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp71791imm; Tue, 28 Aug 2018 16:23:05 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYY7QBGcx8lX/cgVw17nSwGij8Vx2TUmJsNRyKCdSJKMKZ2maK4YLm5opfaCLBbJ/BFO/yE X-Received: by 2002:a63:550b:: with SMTP id j11-v6mr1963386pgb.167.1535498585133; Tue, 28 Aug 2018 16:23:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535498585; cv=none; d=google.com; s=arc-20160816; b=qpuyfXPRjmK9xBbZl0SYRC4POQ/s2bCOCK3YlBcCLJIMqHs+FqxtiM8kijzx52Kv4S 6voTpmGNcXyVGC1Hd0AqdGYpBDqa/sJkvNItLOjMqE0ND77QyWDK/pTZ96rk3PrE+q6m MvesyWpqqSGCs1wpVSKZlc2EYa4qFFrjXEkA3VOlyDqEgZRst/uTU62SJdj7qkvV+Pgl IFKkRq0MDz4ya7CGIa7tRoKZcE82o0NVCulWHYSbX6rwL0gbuNTFQWevlzhfAWSwbY3R U07k0YKIUtCVwBgkfWa9HHQQ6e4c7klmYzu01I5sAI3fO17Uw8n8v9Q4ggbrr55BfD8G NlEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=xjvQ5JHXADHQ707i5zH8d6ltCg7wJu3ZloFnrlMojEY=; b=ow+4kbFNIQLttFta/T0JJsyt2jA0ax6fCfK/lzgGC/u9Rd7Wvw5++eHJU0crM/WzQX rKySrdf46s3uPfDtyDpJighu9658SZP0PbrsViyHKbwibcaeVvD0zjKEgeDizKg58Pwf O0707Vx9COI65N3tgs/iNOVSITbOzDKE/3gPesREIPGGvCli0BrMyLWRUWDgQtckEYUm ePOYsNcKUwe+B1NM2qbd4+W+8i8yeauMKXgFwcKQ6qR52cUJguFG8nROKqAa1hnE8NhG l7FtRbkVSXJaFlgBqNhxGWV8h3cjTmnrR9SFzonXqX9QYH/i0C4CX1J667GOimxXkR+Q 8Z1Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 185-v6si2191846pgj.511.2018.08.28.16.22.50; Tue, 28 Aug 2018 16:23:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727970AbeH2DNq (ORCPT + 99 others); Tue, 28 Aug 2018 23:13:46 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:43984 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727258AbeH2DNp (ORCPT ); Tue, 28 Aug 2018 23:13:45 -0400 Received: by mail-pl1-f194.google.com with SMTP id x6-v6so1395600plv.10; Tue, 28 Aug 2018 16:19:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xjvQ5JHXADHQ707i5zH8d6ltCg7wJu3ZloFnrlMojEY=; b=RR3CUKneZHdRZquohegQsul8lqnhnVf+WQi/VVDylSpfD6uDvWaNOvqkOXkitn/wjV YS4nIzG8w/CitDB+lTGOxobOh1sD5mh4zWJmBVQGqEcAz2I5B8u98e5OIJi7x3UjoI4Y USYGJ97C5Ur/jqSYz+GW47PzfRHpdPdK0nJYUHdYo3hFXWu8LeNgsNvUeceNjxQklNtU ahLUmG3roOr1i9WxHkJgBWCvTyRyzPWSzprsq84yOhMZerdXUUXQUFHjX4IfXiNgIxuh RmIaPTaLf/5L8o0W3nCJ94mVzUOERRVo5sfR/jmbflp4K6A7alVwFXBi/BXQ2lP6je/+ TSmg== X-Gm-Message-State: APzg51CvCcPUJic6b1RRi7FlFAkrgeH8oJeYiUmU3GkKYD1Rsavjy7CW 0seePKlALl29d/4Aa9Olbz4+Hz7jnD6mTA== X-Received: by 2002:a17:902:3a3:: with SMTP id d32-v6mr3497462pld.294.1535498389849; Tue, 28 Aug 2018 16:19:49 -0700 (PDT) Received: from localhost.localdomain ([72.28.92.217]) by smtp.gmail.com with ESMTPSA id q6-v6sm4217354pgq.19.2018.08.28.16.19.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Aug 2018 16:19:49 -0700 (PDT) From: Christian Brauner To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: davem@davemloft.net, kuznet@ms2.inr.ac.ru, yoshfuji@linux-ipv6.org, pombredanne@nexb.com, kstewart@linuxfoundation.org, gregkh@linuxfoundation.org, dsahern@gmail.com, fw@strlen.de, ktkhai@virtuozzo.com, lucien.xin@gmail.com, jakub.kicinski@netronome.com, jbenc@redhat.com, nicolas.dichtel@6wind.com, Christian Brauner Subject: [PATCH net-next 1/5] rtnetlink: add rtnl_get_net_ns_capable() Date: Wed, 29 Aug 2018 01:18:55 +0200 Message-Id: <20180828231859.29758-2-christian@brauner.io> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180828231859.29758-1-christian@brauner.io> References: <20180828231859.29758-1-christian@brauner.io> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org get_target_net() will be used in follow-up patches in ipv{4,6} codepaths to retrieve network namespaces based on network namespace identifiers. So remove the static declaration and export in the rtnetlink header. Also, rename it to rtnl_get_net_ns_capable() to make it obvious what this function is doing. Signed-off-by: Christian Brauner --- include/net/rtnetlink.h | 1 + net/core/rtnetlink.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h index 0bbaa5488423..cf26e5aacac4 100644 --- a/include/net/rtnetlink.h +++ b/include/net/rtnetlink.h @@ -165,6 +165,7 @@ int rtnl_configure_link(struct net_device *dev, const struct ifinfomsg *ifm); int rtnl_nla_parse_ifla(struct nlattr **tb, const struct nlattr *head, int len, struct netlink_ext_ack *exterr); +struct net *rtnl_get_net_ns_capable(struct sock *sk, int netnsid); #define MODULE_ALIAS_RTNL_LINK(kind) MODULE_ALIAS("rtnl-link-" kind) diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index e3f743c141b3..c6c6f93cd195 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -1795,7 +1795,12 @@ static bool link_dump_filtered(struct net_device *dev, return false; } -static struct net *get_target_net(struct sock *sk, int netnsid) +/** + * rtnl_get_net_ns_capable - Get a network namespace based on a netnsid. + * + * Returns the network namespace on success or a error pointer on failure. + */ +struct net *rtnl_get_net_ns_capable(struct sock *sk, int netnsid) { struct net *net; @@ -1847,7 +1852,7 @@ static int rtnl_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb) ifla_policy, NULL) >= 0) { if (tb[IFLA_IF_NETNSID]) { netnsid = nla_get_s32(tb[IFLA_IF_NETNSID]); - tgt_net = get_target_net(skb->sk, netnsid); + tgt_net = rtnl_get_net_ns_capable(skb->sk, netnsid); if (IS_ERR(tgt_net)) { tgt_net = net; netnsid = -1; @@ -2715,7 +2720,7 @@ static int rtnl_dellink(struct sk_buff *skb, struct nlmsghdr *nlh, if (tb[IFLA_IF_NETNSID]) { netnsid = nla_get_s32(tb[IFLA_IF_NETNSID]); - tgt_net = get_target_net(NETLINK_CB(skb).sk, netnsid); + tgt_net = rtnl_get_net_ns_capable(NETLINK_CB(skb).sk, netnsid); if (IS_ERR(tgt_net)) return PTR_ERR(tgt_net); } @@ -3125,7 +3130,7 @@ static int rtnl_getlink(struct sk_buff *skb, struct nlmsghdr *nlh, if (tb[IFLA_IF_NETNSID]) { netnsid = nla_get_s32(tb[IFLA_IF_NETNSID]); - tgt_net = get_target_net(NETLINK_CB(skb).sk, netnsid); + tgt_net = rtnl_get_net_ns_capable(NETLINK_CB(skb).sk, netnsid); if (IS_ERR(tgt_net)) return PTR_ERR(tgt_net); } -- 2.17.1