From patchwork Tue Feb 13 11:30:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Tkhai X-Patchwork-Id: 872774 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="U9J6p0el"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zggN27304z9t67 for ; Tue, 13 Feb 2018 22:31:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934867AbeBMLbM (ORCPT ); Tue, 13 Feb 2018 06:31:12 -0500 Received: from mail-ve1eur01on0136.outbound.protection.outlook.com ([104.47.1.136]:19264 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933926AbeBMLau (ORCPT ); Tue, 13 Feb 2018 06:30:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=wBkxCTtUYKDlWJRfPvWkhKukkZlkLQIHr67spBhPMYo=; b=U9J6p0elWeIrKFK/bKKM6Z65Y40+Md04Aovxd5kEgiAse/eM0gpej9wHOyhZheVEKYfM5zORfUVsXiPe7chVAgi7bGuJve537UShaQiiLi/ncBoF0/e2F53uiil75R9wYbGgfqjgMXp+YISoYWLp/NlBRJEK06+YoroaErCsCus= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Received: from localhost.localdomain (195.214.232.6) by DB6PR0801MB1335.eurprd08.prod.outlook.com (2603:10a6:4:b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Tue, 13 Feb 2018 11:30:44 +0000 Subject: [PATCH net-next 1/2] net: Make extern and export get_net_ns() From: Kirill Tkhai To: davem@davemloft.net, jasowang@redhat.com, edumazet@google.com, xiyou.wangcong@gmail.com, willemb@google.com, peterpenkov96@gmail.com, Linyu.Yuan@alcatel-sbell.com.cn, kstewart@linuxfoundation.org, aviadye@mellanox.com, gregkh@linuxfoundation.org, ktkhai@virtuozzo.com, davejwatson@fb.com, netdev@vger.kernel.org Date: Tue, 13 Feb 2018 14:30:42 +0300 Message-ID: <151852144203.22861.12483846849729481318.stgit@localhost.localdomain> In-Reply-To: <151852103279.22861.2623333596815656086.stgit@localhost.localdomain> References: <151852103279.22861.2623333596815656086.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0802CA0022.eurprd08.prod.outlook.com (2603:10a6:3:bd::32) To DB6PR0801MB1335.eurprd08.prod.outlook.com (2603:10a6:4:b::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 431efeca-1db2-4fc1-504f-08d572d53973 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:DB6PR0801MB1335; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 3:T47siwwmJptFgm4b4Q+mKJ0cl/FZDX5hsAJjhv1P30Ui0JH/x5IX6qHUoqV6Z8dRowa5Clab8nHasRT3F3p4Ul7gdelLnNCC8FhKkUrcNDay6rScIVJw6nHPxTSLolhm8A/4Nc0t/is131U6Yhye+RS5ZKe1QKrPSceUqPyV55yirkWeoiVzbtL02yU0vzgrUxb5qlKpuXJM8VDEZe279Uezzim/IuDVw3AIjYzzL7NrhrFivI3/FN1NbPxSAL+x; 25:M6F8cqktbU4q6F7F0bDCOlWFC4xdo33MEV9FQxF0iqPUvH6oJ4HP9TDVyH72F/cMvXuILaetBDK8wd3+9VgZOmkbQN9aw+BrFAI4Pary4LIMpm0YHGiadPkIuHLhXTfrXRzKUpStJbnNweaxAD9xqCIdEYM5DPmHBytoI5blhZmIDKfu8lEkal2xUrGEN8bwiDRWc9o+M+qcNPXNriU8+l9W2Mg7aqbWOtXAQOVGDc4IEPBjNdTluUsCUC1j6EyYJ+lgfQgtg2omOll+OCKzJnia2Psgtmb5q92CUKwc04MyYkcI6f7FCYpZOq6j+VNtHhyvzG7XyOGXMEgsYTD55A==; 31:duyzJA6iKPdgCmA/Yt3H1OvllQ02NnY8f551wp43hS+yjEte6qKdE6pt+CLY7rVxlgjsD02UDqJYU4XTgI2fhNPYVSV1tBfLvBiOU1HMe8ttKImpFJ1Xy/qc82uyueYssitdwlBv8MJTZyE9JvyZW3hevULCAatA8TT5a/J3I3wle4eUN82wvMXeTLlrSsJpBxx0u1FZAoxgc7ltZhun70l7WSVQ+JQ0vj/ybLTSTV4= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1335: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 20:UgJSr6wmFsrJwiO9asc/ZkvPlx6JoJFukKmoSrq3IcBKLjRAnA6zMdMCPYnW+54DaWPF6ViX2JTFSUGPXmDtpKns9pLKS+wswqh3WitPtTQ9Kr0za5efsuq/WsaSEyYDrxAEHBKWpxeWD6tfUZbNRHrT6jbUULBZ7ZN9+oWHOyF2pydUx0voCXlQRUCQbLmCmO+vSYNnTpSvOnPDtbbhfA+2IdbvGM0J5mo2U/8KIDPzN6H6LSF4DUSEX0llv0QtoYwLcbFWYq8c85cTPyB/P4OvA2mEljMmjfCNIYsbI2bzToDgawD4v0Tnp4Rl/KbP7RJbSvpU58wKEkR16P0hLWctTOF9pApNCDGuTcS2MctJZ8EtQwTWMBYvOHvhg7tyqh0Cmdf9Mu+NCGt99LYcFhtuP16D+Q4uowdEdCJEz1puxb/8/pC+/R9DMP+Sbcuwpv2aeJidtX3yp4SSV2jLn6Ott/Dai1oeTv3TeArSDvKCqP6PMsGKLtpdZ1CAiVC8; 4:a5YC5YhVZpQxheHUI+aeExnCemYBwSEPN61031qvuhSxSom8ijPvY281oyLT0qpo5aVAl+HXz6ttxC6YiTvSFrTjh/SMHwaD2EhfF7PA5oyUGp5rAoFkI2U7WOvDWY9OKCHXyQtvUwooC7OZT6RaplonAw9aGHtXBjDtWSn8aBsQnO8uKYMIAQdfgOPF4cDlCG9bo1nQ5LgmgOy0ttHXh+QsUL3tAxTdf1u81yXNZD4K4IVZ7HmMtBOxp0S5fLMPoTk8szz21WwlLvNDdb9aig== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3231101)(2400082)(944501161)(93006095)(93001095)(3002001)(10201501046)(6041288)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DB6PR0801MB1335; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1335; X-Forefront-PRVS: 0582641F53 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(39380400002)(396003)(346002)(376002)(366004)(39850400004)(189003)(199004)(305945005)(7416002)(106356001)(5660300001)(58126008)(316002)(83506002)(50466002)(39060400002)(53936002)(25786009)(9686003)(55016002)(86362001)(61506002)(68736007)(66066001)(478600001)(230700001)(47776003)(103116003)(7736002)(2950100002)(105586002)(81156014)(59450400001)(81166006)(8676002)(33896004)(8936002)(7696005)(76176011)(52116002)(2486003)(2906002)(16526019)(386003)(6506007)(26005)(186003)(6116002)(55236004)(23676004)(3846002)(97736004)(921003)(1121003); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1335; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDB6PR0801MB1335=3B23=3A2i?= =?utf-8?q?OiosyjViVs1clydFRd0YENEb3INTjp2yw6mPOp6Dw4NALn9N1ukKLL//?= =?utf-8?q?8AD4cK7VLaUKcLUvTnQfRDpPRBPygljE91dnT67PL2gVBFH0fKWozEpc?= =?utf-8?q?jvu9PE8NsyJx8I2ZqSmt78yY+UoHkiymG06humwY58KKQOJVQ4CY5S5i?= =?utf-8?q?1nlJQiTP9INxAyLYczMI6FeKLVmyomy5/aVXHSn2T9N8kxxRzMboAliS?= =?utf-8?q?9vsM2lUIsu9VdDhhvrDJGv3E+sVAdLK6OgZyo5WpzdmhoaE4scE+qsGw?= =?utf-8?q?uQ2NHe5BfHch2aCDRS2fGACvJ8g1lItZUJt2DkzMxnSF+/U2vUxaxaAz?= =?utf-8?q?1LPOO+IFLLL9xcRlStX8aE9uhV3tIdbcpcM1Is/X3p5ePBC5hRwsCMzJ?= =?utf-8?q?gK/gz+jINqZn50FMmxgvAQRh3kGZa04Gy0NzFzKs6Rx4zhktFl4Y6NGy?= =?utf-8?q?N3dOvWRrxihnWEXvHJHgRiVX1+VwOEMTIKCWl6KFbkQj0O5S3OaYxjpL?= =?utf-8?q?8c7YTXYlJieL3+LvFyq/i8N8sE3/RS/HwzjxyS4qVl9/oYozMQ0Haeaa?= =?utf-8?q?8JsYnbZ+ab3uVQa5QzX+HJMdGru8IO/kpephCMovPWzrDvR1mDTNpKNX?= =?utf-8?q?r1ZrJYn9zbGbY2I1WxnKUh3LI9zH8pbgkKw5L8j9FSzE5wxLAVStSD7j?= =?utf-8?q?FEMCO9gHdITb5tHCVVjKj9rBblLmdxziQehUdM0/6FCPNacSxf5gK9YN?= =?utf-8?q?iOrMLP6U53Yr7zd75zU3VPhlpnzMdlhA1fSDh7IocI3hh0e0Jq4Zy+i/?= =?utf-8?q?wefag2YcDOP033qXyh3kej5AafbCksRP2V17c9Gebf74PQd58rSQxv4J?= =?utf-8?q?Iiml9fXPAtg8a41jDu+KHgvXFKkZvgyHr4ZxGzugfACGOta5CHMu4Y6T?= =?utf-8?q?92Kme7SRij1egmu7kP59azwyRxzuWJeXgHR9ieiskwCfdI1uFXALi2mh?= =?utf-8?q?cvpgZFySV97J8GE43la6G/dkpYRBsEWe4TaZUAn2a1BE/OQxxNAQrI6E?= =?utf-8?q?fF4pZxKFZPnY3xHVv4/2SSPzEqGIInhYNnA5HNddvRPQ72OSztLmeEGF?= =?utf-8?q?4kVCyQ71BeAjyDqPESU0/kjICWqnSAwidc2LA3UTK4IoeBX5RBN2tKDe?= =?utf-8?q?CR/YGi7Z8NySfG5d0HClYQ84Qdutf4AsD/DELEC/PLwhxd59Hp/JQfzw?= =?utf-8?q?mVjEMzyB16C6GJ2BHUdGp/4X8ot1ERhN3dBlX6YIAbNF4d5NoQCYkbVT?= =?utf-8?q?dfTc9yzzEBeoeCBfUeyVmknIZ4G6S7YxjMxDDk7C0Zjlzi?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 6:yXe6iM4XFdUTXmrx1x8Lru19+2xBdqalhgdGfpH5+3aLY6pgNz90YkUPx8K1zOgF4jEwUgxlXHWiIo3nPgA+0t42mj5xTvCzF9sBWxEJ9aP7aj9DDsIcJubYGSkRrGIkgrHryAuNBIr/MG8S4BPgny4BJPMsD3B9OsCDYfN2SZx35FbDpodi/arRkOkwyi1XgVnS63TVxkxoPG9G96jFpJtmW2rkHw10JWmejdjEmT7sYYzMRHTyqvicNOI2r+evF1PJvKS6Uw7J00aSmRMk2enwOaXJgNopTppEWIr6zXK3Q8JU1pPzzQXPJHruHagqKhpGMZ768QylCUqmABflrvcjNVATO9GHdlCzuMFIDdY=; 5:c/+YZeLOmmriLdprnyPdDF2SNlVbUoIDWlFb4FfzYW/bl4UP2YqDXLTaim0oE8N0UisNPh/sdUS2sW+8JzoyrfGQQTn/FFVaB4UBbHbSX6sJznVI4/GoX9VkzoLdjxT1T492HYGMr1fVMJUDFuQY9km1cseG2vHQCPw+ihhiL0k=; 24:OP+fSBnc8RuiUHXE4JdXDX2X//8BOgl1K1DGVvtNNgqL02GnEFRZt2e4uW2kvX+CBmzG79PLhLU2iBvXrEhCu/2H+7jYV/IlyFHuYRSqVMk=; 7:3K9q0cskmu0nbg4fScYYoTauMOIccVXeOPTpqZqz3KDGjxx9rdp+iudcZWR0kMJfpsaTH1XZWzSmJA/BRj7xjBu0GNNdKks7/gbcX/AeUSUAZ2WchZ6BP88kXbnSu3GiIWnhz+ADW6JFROq9hAAUoNF8D8qposys6dveNnoF3EvdL1Euslc80k4cE4vtZ4B/rqj1hCG5jH30t4tTL56elyE8AbNOES49E5GfPmgfpEnQecnkkaEWNk1TMd8DwCX4 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 20:TbfVq5byy0kblTA7QGz0AhkGewd05pEg1SLZNK54u9GfUZOScmpoIQ1QJ7vRt+JjCyyYeiCncE8y0C0KYLoTHZSL35RK8+PGG+a+ODFHO3/ATyGx9DMmnDwc9CnO8G3AdOB/F6E5eTZRl76fn6+o1n8SNrqPoW/3mYfPX3XHFnE= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2018 11:30:44.9001 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 431efeca-1db2-4fc1-504f-08d572d53973 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1335 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This function will be used to obtain net of tun device. Signed-off-by: Kirill Tkhai --- include/linux/socket.h | 2 ++ net/socket.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/socket.h b/include/linux/socket.h index 9286a5a8c60c..1ce1f768a58c 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -353,4 +353,6 @@ extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen unsigned int flags, struct timespec *timeout); extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, unsigned int flags); + +extern struct ns_common *get_net_ns(struct ns_common *ns); #endif /* _LINUX_SOCKET_H */ diff --git a/net/socket.c b/net/socket.c index fac8246a8ae8..7d1ffa755821 100644 --- a/net/socket.c +++ b/net/socket.c @@ -991,10 +991,11 @@ static long sock_do_ioctl(struct net *net, struct socket *sock, * what to do with it - that's up to the protocol still. */ -static struct ns_common *get_net_ns(struct ns_common *ns) +struct ns_common *get_net_ns(struct ns_common *ns) { return &get_net(container_of(ns, struct net, ns))->ns; } +EXPORT_SYMBOL_GPL(get_net_ns); static long sock_ioctl(struct file *file, unsigned cmd, unsigned long arg) { From patchwork Tue Feb 13 11:30:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Tkhai X-Patchwork-Id: 872773 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="XSaLbWow"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zggMs28swz9t67 for ; Tue, 13 Feb 2018 22:31:05 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934850AbeBMLbC (ORCPT ); Tue, 13 Feb 2018 06:31:02 -0500 Received: from mail-db5eur01on0103.outbound.protection.outlook.com ([104.47.2.103]:31456 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933964AbeBMLa7 (ORCPT ); Tue, 13 Feb 2018 06:30:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=FG8rwj2fVlbGbHLhob5z5ued9nYR5iFJ671xMcsIgPg=; b=XSaLbWowkYU8gsXv24VTOHx1MghIrjbWE0uH0GMt7W4MZC9yqPezLVQLw/HJxNmyjrahZ5i29VyRzKoFe5NRpBVomDCrN3Aa/V3YOr2sWWsS8qEUUxwWkVEAlYSoeo7ea/9vfXHJtGl5SEbNvPToZTSNm0fdVCt2QgU+yxwzClA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Received: from localhost.localdomain (195.214.232.6) by VI1PR0801MB1341.eurprd08.prod.outlook.com (2603:10a6:800:3a::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Tue, 13 Feb 2018 11:30:54 +0000 Subject: [PATCH net-next 2/2] tun: Add ioctl() SIOCGSKNS cmd to allow obtaining net ns of tun device From: Kirill Tkhai To: davem@davemloft.net, jasowang@redhat.com, edumazet@google.com, xiyou.wangcong@gmail.com, willemb@google.com, peterpenkov96@gmail.com, Linyu.Yuan@alcatel-sbell.com.cn, kstewart@linuxfoundation.org, aviadye@mellanox.com, gregkh@linuxfoundation.org, ktkhai@virtuozzo.com, davejwatson@fb.com, netdev@vger.kernel.org Date: Tue, 13 Feb 2018 14:30:51 +0300 Message-ID: <151852145162.22861.16732260881858951214.stgit@localhost.localdomain> In-Reply-To: <151852103279.22861.2623333596815656086.stgit@localhost.localdomain> References: <151852103279.22861.2623333596815656086.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0701CA0078.eurprd07.prod.outlook.com (2603:10a6:3:64::22) To VI1PR0801MB1341.eurprd08.prod.outlook.com (2603:10a6:800:3a::27) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bab531cf-c35a-4e37-3d37-08d572d53f10 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:VI1PR0801MB1341; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1341; 3:T7h2S25BUfrTZB8P9mc4+c7thYyVygn65jjmz3ZtzxehN+8eUrzGNOdjxeaVeBJ6wtvLZWeXnVySxglP26YUVHUYEwHWQCaHJjZ+4W+Jj1D27KE89bJSxS9YoEsWgzG7+14m1p+LE8HQwc2RT1ujYj+oWMGIOIsHYPP32FJWq+PSd3sVXmhOdcDpKukw5Oe0dSMIGbcumjH3yXgThN6TXbXuvzZFdAwINfZpbxH+gBkq8aJTjHNG8vVrGRqLC5bD; 25:knLGUKYXz9Q7jNknjzLChpmqTTOvOi1q/66twZO19LaP92uGke1dPPChiL98p0YI/XC/CHYi2FzMgxabRQUrr6kDKvVVENxB7BKeemPvYnYIGBN5nBBk63/xrvO3ALpp0Rvf3rZZJqHeqGDG/PcnPppmmSMrs0MJ5wB67KkWM4jwvoX7WDC4X5PbziJ2qUqNdkkdES/D9n2EpWxgqyGJ461Kd2AYcozEQ2/hHqUBiaihhMAZZ7rzdA/BH7GuIi/Wwd/IROp1l+LvwShL7ojKawYRUEC+HJ20OjGjuTAaFz6Ox5r0b0OQ0xbAo8a1BkSFFOw4IC+M8/zIEnhy3tVPTA==; 31:GYIU23gC6aYu3YQsysidw6e4SOG0N5x/+ZmiyZWfwM9irlSRPKwcXvY+QjXu2tsuapsD6fXFLJnJjE8jUk9VwRVShpcZ+acm00vQefZ+DZw+AeeRwacVo37ewqzjyy3TTESYrM8UKICjJXbbUbyHyESYCu0cKGiw3Nf/7dRu8DjbeDXepbg+emUJIbA/IJLOv7kFQvvnVH+uR0Q2W+5xESuVnvYggjMOXICEP23WvUA= X-MS-TrafficTypeDiagnostic: VI1PR0801MB1341: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1341; 20:9ADCDnyJA/OSJx975UDNO5bSnpViyBSbL9XKFq2Z6oO3eEGgFC1KKBa0YyuYj0tovWyHv1JxmdF8uG0ve9sIF8MVhui+TIVocxbdv4dDhNsRZh2hWXtZ+iiPvWQ5mRlt34hsM7Xb6xhbWsJG4QB43NTOKRVJF9Tuao+Wh3uOsKuzi9sHVKA9n5+3Ky+hLzaMC1kZvEkoGvnbwXfp5Ov3utfDs5dWs4u02ENd0xXAsHIWJdTu4eFub1VcmAeHCfNDJp/z9R2dfDuROXl70Yy2nOgX/eixXTEaY80woSqB7xQYsF0vi8sQNcUffOzITYmb34vPvWJ/qnFZ8FiMgtmSpjkQKISE2eA/Kp9LBMB9ojXzeqx9l0lrLiu/pRTx3VKGeAfjZP7Ux5Lotu6me8kw92TRkDi7jafDg28GIhRnQ7s/RMedsqPS0f2vB74cGZGc86y5i57qAWwLCr6kktmO76mcecDDgD7jpFK5zs0Ub3JZH3wiy7Bbhqsmfkh81uSX; 4:z43l7rHE2GhoLvYApBtbG4jnBTjkJaaQPh0cJPhaR5JkzmHPPafU/I+2ptax+/H/7FdOLQeR5uit9Jeb+9+YP0X5il5DogbWJ8l6dx2cSVNfi0/Tl+sEXpRPQj0SK/UParGI9n31/IkUS9Y2Hp8ez73phH+rNjog+AdUVu++aBQ5SL4/4Nz/8ZBLq7LbB+inARXeYtfmJCzbMF5hMaQGGHjAw0W6U3a1iUEcYtmphNs889Ta7KUFWBVcv4mxGpSSPcZ0jt3lwhiLvL3R6yL8tA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6041288)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR0801MB1341; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0801MB1341; X-Forefront-PRVS: 0582641F53 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(366004)(376002)(39850400004)(39380400002)(396003)(346002)(189003)(199004)(39060400002)(76176011)(2906002)(386003)(59450400001)(2950100002)(6666003)(50466002)(5660300001)(53936002)(6506007)(55236004)(3846002)(7736002)(55016002)(33896004)(6116002)(478600001)(305945005)(7416002)(106356001)(47776003)(316002)(97736004)(26005)(186003)(83506002)(16526019)(8676002)(81156014)(25786009)(7696005)(58126008)(81166006)(230700001)(103116003)(52116002)(66066001)(9686003)(8936002)(61506002)(23676004)(2486003)(86362001)(68736007)(105586002)(575784001)(921003)(1121003); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0801MB1341; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BVI1PR0801MB1341=3B23=3Ace?= =?utf-8?q?X0Fm+UBjctX18d0HcorFYFdpaicQDqA6nsZBX0JuetKaTftdaBLxEX3O?= =?utf-8?q?XQLfPmp3redOFdbhb6aZuGPDoM6/2j0lkeaohoz8cfHUcj6wQhJty/Td?= =?utf-8?q?cWB1aTOgV3syi4KoQhvGUO1syhwqlkgxNU57kJ/Cwec0Ur7eDC9R7VVj?= =?utf-8?q?yE8JsBPyWuY82do/jQWiRuzeje7D9jasSbdWNXDE0wXvV63d+2eTdENG?= =?utf-8?q?ZQkHD3Y3ZgOM6XMpnU5VPsdg+t4yxtsYJYK92kWRt31PbQ2hkkGQXd0q?= =?utf-8?q?/3fYiyjHEb/foPsyxuINr50qPppz5uj38cQR6syuC5q7lcBmcPFHDVq3?= =?utf-8?q?HeY1PoV28XfmewgkDhg659yiWys6dAkejJtQXBRsJ2X92/7yUTDVslzX?= =?utf-8?q?3N7KcK/i3CeOWiJ2euLPp/i9nRhAkebr6bqAIHthWxOILXgQcMP6Yu4V?= =?utf-8?q?fNP41gI66CjXt9oeo2LNJQYc4mk/dXHM4nxn1tuAqtqGQ5od1Xs2PzZ2?= =?utf-8?q?gNPqbIf2DpmEy4L3qJ0T64HSECfaN6YkcCzlrbQ6Eczx8LZwOCu45c3F?= =?utf-8?q?n8H6XxZk3Lm7Bj8COc6R4RtLGzk4C0s/gGTCKSjJdR7PE1zp/VOPH9oD?= =?utf-8?q?Jaj/CXBdbhJiVGEToCNsyV5SeaGwrGUJ6BC05q3rjVuhpZ3GvW0/Py5o?= =?utf-8?q?It99aI2KBrLQwYEbCYIoYK4NVdEizeoY6CZC3GpIk0gapNMUpF1W7gx8?= =?utf-8?q?a9EZeHG9zEEvw3n8Ak2qXSDrnO1EFers2Ksx/FKFpX7win/44eE0blM9?= =?utf-8?q?mTLu3EXkQ3EzwnPJom9H6x0qjC97BjvZhtF7KZ1ak4YgqgY6HqFSWggu?= =?utf-8?q?Srp/xFL6hOFcVhtBrSEPAO19DPH/2PdvTQ9gdAfUNlCYMEfUgtSy2QBt?= =?utf-8?q?Ncy0tqXmsYqdpjuDtoYkErgkfUycPQHZEK/7qHFycVZ1oioLiOmT8KsG?= =?utf-8?q?pu0szQuSp2FT0y83Kaco00WIljSjfmg92zghy2EjsEn7bmArSHUcCpfu?= =?utf-8?q?kRJ2pyuh4MBfOwkOiIgqd+NEIhO3bj6T/Ps4uVpJDCqVjqKo0XWvPhks?= =?utf-8?q?rGHhmevp7HbHRh4hZOHkEfVFaRm58czZwTKZQ9niCglRWEsO00hjrAmF?= =?utf-8?q?Zc+prtqF74RqosM06wJ3SX9icKFKmu+Ivs9wRrXvA/cpSA0PJItn7+gL?= =?utf-8?q?0VFOrWdXN+A57NPdu6xuXVu7jNKhp3gTqqUopVu/Y7obrBB0lNFL6POq?= =?utf-8?q?Bg+48XLAK3FJAHay5HpyhmHIu8NZqeg16O54uu3m0iF3goPkvvnPXZ0N?= =?utf-8?q?o/w6QgdYvPc7NBfxvtjYCIDMUS3UfrXdU=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1341; 6:Bi1z4v/t23pSeKF93qozKrcO+4aPv1e24YoTJ39cEB9LcYT5is3G5fcDTeDpeIIyQFwStH4O+bn0g1qaeUJpaEskQBuBIMoaFPJKFxyrtx7ub+xzUOVkvJKR3Pgn7RjlBXnBHL6pOA1h+MnxxGrmMmxfruZBsG5PqnxCXzYD1hFWHE5Kt0pYfjKlo+yu3QQTYOEh1w4dbpIaqeMr435oMbi8Z1vkSFMRoKmdC4yNcvPKKMyms5zbD1ARj9vy5+INPkM3Mr8IIVnYS5w5dfNnRo7muz8B8dBa3rw++/zyh3U7Hmm4dX7Pztn3bxv9Xz/gKPsDyPCfiEnrhg+7lLYthvvIIjCUl9yv9QPyOK1IVwo=; 5:uR0pGwWjZVsP8pWE3+OwEBRWxq3/hnSIQgJvUOj8ZyOdbr17n3n3RL7qevIal+kR4vO+/f3s0uFCOQ3LhIk2urp0DLxmIA0EhUfGV930w56EZteAYKKOieenDnPSE32/ovsn8SKw2kRL6cUWoU9AoY+KLG7tqm6FG68IoyLPcdc=; 24:Z/ga+iOZhgWnw8HbVLA0doFvQaEK9v0uAOVIsIdWjgNi1KYBhupysjljMHMq99biFWtOLOSvKL6SGRG7ToiHPdmRgOcs2tnVRXzNVwO8T9w=; 7:ddrEMjFYSHP27JfSsGB5v9+kR9K/PIdJQJUj+71kHXKei3LAp8kBnIR+0iHzNVc18bwIqh4s9R7DCijeflWZzsUHAS+W0hbc8L/KIJYhMzdMxeDLxcZmsntflIQkL79Fg54qQgZ2jnrZpo5Zl6wff5htGhkHrV3PE57nGeicGFTkUJtcIOX6jXsTxAM38+HzprmBpgxXLZINY54v0E6jZwRfb1jQocTvgwGLTaMJuqEGMT95bvSy2QQO56pw5ROs SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1341; 20:RjgbCdP1wrIRp8IBvp4dmr3mEQQnj61gi3QIKCnI9UD0WZhEQjpLXaXfH0F+iBNtS3zL1oqUKefzl1uM2l4xkgcTtDwPOXPUK6bArNnD/MYW+9FZkW1hcnuRSTj/odabq5H5JICqrIS16AnXYj9ygCTQGBGAnjSXSBjw1Je4pxg= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2018 11:30:54.3484 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bab531cf-c35a-4e37-3d37-08d572d53f10 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1341 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds possibility to get tun device's net namespace fd in the same way we allow to do that for sockets. Socket ioctl numbers do not intersect with tun-specific, and there is already SIOCSIFHWADDR used in tun code. So, SIOCGSKNS number is choosen instead of custom-made for this functionality. Note, that open_related_ns() uses plain get_net_ns() and it's safe (net can't be already dead at this moment): tun socket is allocated via sk_alloc() with zero last arg (kern = 0). So, each alive socket increments net::count, and the socket is definitely alive during ioctl syscall. Also, common variable net is introduced, so small cleanup in TUNSETIFF is made. Signed-off-by: Kirill Tkhai --- drivers/net/tun.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 81e6cc951e7f..8e9a0ac644d2 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -78,6 +78,7 @@ #include #include +#include /* Uncomment to enable debugging */ /* #define TUN_DEBUG 1 */ @@ -2793,6 +2794,7 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, struct tun_struct *tun; void __user* argp = (void __user*)arg; struct ifreq ifr; + struct net *net; kuid_t owner; kgid_t group; int sndbuf; @@ -2801,7 +2803,8 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, int le; int ret; - if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || _IOC_TYPE(cmd) == SOCK_IOC_TYPE) { + if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || + (_IOC_TYPE(cmd) == SOCK_IOC_TYPE && cmd != SIOCGSKNS)) { if (copy_from_user(&ifr, argp, ifreq_len)) return -EFAULT; } else { @@ -2821,6 +2824,7 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, rtnl_lock(); tun = tun_get(tfile); + net = sock_net(&tfile->sk); if (cmd == TUNSETIFF) { ret = -EEXIST; if (tun) @@ -2828,7 +2832,7 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, ifr.ifr_name[IFNAMSIZ-1] = '\0'; - ret = tun_set_iff(sock_net(&tfile->sk), file, &ifr); + ret = tun_set_iff(net, file, &ifr); if (ret) goto unlock; @@ -2850,6 +2854,14 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, tfile->ifindex = ifindex; goto unlock; } + if (cmd == SIOCGSKNS) { + ret = -EPERM; + if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) + goto unlock; + + ret = open_related_ns(&net->ns, get_net_ns); + goto unlock; + } ret = -EBADFD; if (!tun)