From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752534AbdKTSc3 (ORCPT ); Mon, 20 Nov 2017 13:32:29 -0500 Received: from mail-ve1eur01on0114.outbound.protection.outlook.com ([104.47.1.114]:23028 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752124AbdKTScY (ORCPT ); Mon, 20 Nov 2017 13:32:24 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: [PATCH v2 01/31] net: Assign net to net_namespace_list in setup_net() From: Kirill Tkhai To: davem@davemloft.net, vyasevic@redhat.com, kstewart@linuxfoundation.org, pombredanne@nexb.com, vyasevich@gmail.com, mark.rutland@arm.com, gregkh@linuxfoundation.org, adobriyan@gmail.com, fw@strlen.de, nicolas.dichtel@6wind.com, xiyou.wangcong@gmail.com, roman.kapl@sysgo.com, paul@paul-moore.com, dsahern@gmail.com, daniel@iogearbox.net, lucien.xin@gmail.com, mschiffer@universe-factory.net, rshearma@brocade.com, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, ktkhai@virtuozzo.com, ebiederm@xmission.com, avagin@virtuozzo.com, gorcunov@virtuozzo.com, eric.dumazet@gmail.com, stephen@networkplumber.org, ktkhai@virtuozzo.com Date: Mon, 20 Nov 2017 21:32:16 +0300 Message-ID: <151120273642.3159.6622419948722697029.stgit@localhost.localdomain> In-Reply-To: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> References: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0902CA0030.eurprd09.prod.outlook.com (2603:10a6:7:15::19) To HE1PR0801MB1338.eurprd08.prod.outlook.com (2603:10a6:3:39::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d2be9932-ba93-4c15-c010-08d530450849 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:HE1PR0801MB1338; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;3:bAPumftq//tgbZhDV30x+VUpabEWvFB6j6ifmT3BwIa3Z739IMtyQ2qh1MSsQf1gY/iUWAWJuoxYwoSxZX/qpj2fjJGxpJA44PO3ZZzAGSkR9mh2yhFWW4fjm0xL3/70p8Y/r87b4tycOrqLXBiccnI97KEtimGSToJWS2HY0GOtktZXhOfKac4w/ZEqTWEeVwADj8qJlZdS3Wx8N9pMkHlUrbecuyI0Jx8cajCE8i8ev+V1YhcGe/xX0YZyvPTk;25:bKQUsPxmWRyv5N4q00//L8xwNkP7s2vcDmeSUENA+pl+JtS03tMGZlgfPQhR3cv9XLpHm8Sm9HyvCCQ8NQ/JJgn9m5zT9aEAmolOurAS1Wh2FUEqH7DBxEjDkrv3lUl2a0mUjT8lp1ws7eo/Uqx4o6jR1l934zT91OgF5mAiHMlWafbkh83dIO4eijOYzVhdfl/mkKTTdExF+n1RJAZBOBtzsSLERS1GFS9gUlFbdytXGofFkxEgVG8/gClfoH002te1twI76tAzlWhvvwPzW8gv0jaUj7r6GHdhSeACPJ80DOUKNJVuVDFbwBMBdMMAu7Fhp9rQwIb2T5nyYs+nPA==;31:sOXDPOCl79Rwlb+XfZSj7tq07twNhzhqV0u5/QoTc6St+zflEcU8fwlJSMlc6P4x8ZflGP6VL9bi5TD3j5uVV2623lyYnrtB+5q2HBUbuG+gjaXsg017yR9vouBYkWqAZyHR1Xw0G2rakLPVYel6UmHKYzaPB706EWbLoXf57DekwrXuWkt5sQJV2MUWaMw5mdV4ogIpslHFIlXIg0suwo4O6UK+hDn0zkFl9p9CrQw= X-MS-TrafficTypeDiagnostic: HE1PR0801MB1338: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;20:hQdgN/JJG7Dx36vnizOEpAY7FKIKy4tHQFEM+zMFPRWybnyYBSp1fMrpYqTG7uH9KzUqCVwxW8UgimAXH618DECoph454PiumG17c7kR06GCrq+J4YrWDrVfw422hxNVww6GZLWbOxFJv2bjTNzq/8jkFCgC2zWo4ccHZ8hBuYNcYYyst5NJEMsxxKn4ixVZngvjyxV4IEZibTkkM2aFwSaBr3CnzYMGsbKYiUG2Xswk2Fq36KKoVXQDyo/ELd5/0eG9plxxCYv9+pcUttLh60xqcVuS5szjYZn0OjGVeAf4SRumTuPLZZFc5yy76K+I8od03YJI4oQeLqlLUJlBgyLUAKaACihI9HzEDADPxBPy8afaKy+h3oxxKABqIz1b8umqjx9gF09LIOiTD1IvNe9jQFqm3WRW9ll7q6TyGcg=;4:BYH1s0fnzRdo8XvWDHrhfaxVc1fBnQda88PVqfconuo07cyS5nT5irhhQvi1dVA+RoTNfiFGc5g/3xW0mXzdYUtJi2Sft62GeIvHqkRSu1trFWsUFcfF7KAiASPs0edTnsOHBWICixJ5yuc2Yod7tzvHzOIJqJyGpplNe6UVRGqDwV6KDMawxtov7jAJ7hxJlkriBNhF99DVbf+ziToO9Z2Vxbtu0U9ZnPJsdIFfy5nkeC2xtGw9G4JVfM4+UEnqLauXVVR7G9LyZJ3OLt31Xw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231022)(3002001)(100000703101)(100105400095)(6041248)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:HE1PR0801MB1338;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1PR0801MB1338; X-Forefront-PRVS: 04976078F0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(6069001)(376002)(346002)(189002)(199003)(7736002)(83506002)(16526018)(55236003)(2950100002)(7416002)(23676003)(58126008)(105586002)(106356001)(305945005)(97736004)(9686003)(230700001)(33646002)(5660300001)(55016002)(478600001)(68736007)(6506006)(53936002)(25786009)(47776003)(50466002)(81156014)(86362001)(66066001)(61506002)(50986999)(6116002)(316002)(54356999)(76176999)(3846002)(8676002)(2906002)(103116003)(81166006)(8936002)(101416001)(39060400002)(189998001)(921003)(1121003);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1338;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA4MDFNQjEzMzg7MjM6eUtHeWNROTVoVnZIeGFFZzVlM09hMERV?= =?utf-8?B?b1YraUo1MnpiUEo5NDVPUlBQek5XcFlPdW9qSWpTU2xDMktld0ZoNlhhRzQ5?= =?utf-8?B?VlRBZDh2MEdXNTV4N09ZZko2TTZxZE1NdUFTZHIvTm9HZHNTRk9yWWF3T2pC?= =?utf-8?B?K1l6SmwxcCtmeklYWm9DbGFpRWNodnBUZUhYN0QxZzljYTA1L0Y4V0ppSGMx?= =?utf-8?B?THFCdXppa25SbnA4Vk5WNkJtazdZd1FLL1RFblo1QkFZZ3dGbmxsbjJPRCtY?= =?utf-8?B?ek5mTmlxa2hvZ2JHSFBpay81ZTVoMG5wZGVnSnpqM3ZDVmR6bzRiU1A1dWh1?= =?utf-8?B?U1l4YlZHK3EvcVJNWXdCWjVWS1FzVGU2bDM3Kzd0V0JXM2p1WkNBNmorV29G?= =?utf-8?B?L0g2eCtscFRRT0lObmJBQU92cWROdzYxUDdGY2xPcUM0V3RMYVdMNXBDdStm?= =?utf-8?B?NWU1MVNMa3lmYzRrWFpLK3dsUW9XSDY1QjhVVUZONThJbi92WHRTZ3QxdVpN?= =?utf-8?B?QXpZeURnc0lyVFVtaENhSGRmc1lEVWF2K0sxRGs2OFJvYUVqMzJYWnprZ3RM?= =?utf-8?B?a2pkY0JsRm9COThHMmJwYW9nM3B0OUsxdnNLNlM1VlFZN2VmeG1FMVJFeExk?= =?utf-8?B?QWpWbVBFcmJpZUxwZWNBRzJIaWFGWTdGS3lPUlV6d0VsMzd5WjBpTU5wR3Ax?= =?utf-8?B?dmRveC9QeWtKK2VtWXhLNUNOY1JvRmx6cWJ5cjJPMHhUQ09neXRlNzVhaVZq?= =?utf-8?B?SGdDS0RGeS9lWUZOcVZKbXBWZ1UvMnVOQkU3RjR1bFhsRmdQV0JOUjJnNmJM?= =?utf-8?B?cVNZbThHeGxuSms0L210NXJka2FMT1YvZGU0bG5KdU1US3lqbTMyVjZzeEdm?= =?utf-8?B?ekFmVmYwQ0IyV2lacjdiKzN3LzRkaWJjRThWblo3RHVRMVA0QW4vS3htV3FV?= =?utf-8?B?c0dRS1BPcUhMZW10TjVoZGFBWFpIdUwyZERFdWFwOXdZSGRTNkJHOHArRDdu?= =?utf-8?B?WUExcFQwNEJtUjV6UTREL1ZYR0JSeFdpWEUrbm9uU2NucXZCWTdBWmQwdmZ0?= =?utf-8?B?SEtUK1FyeVVISUphWE5HSFhvUklwd3hXaE1HT1MxTUVka2toTWJNZ05nMC9N?= =?utf-8?B?bnhHVE9DVTh0N3EvWUZBNVdsdDVvTkhZRmFyNUlkV3JsWkd1UzhyTjJod2tD?= =?utf-8?B?NjFHS2xoaFUwYkhJNndWM2tzSnNBUUR2MVJEYkpCdFJFZFJPY0hyU1d3L2dV?= =?utf-8?B?aTRXUmVEZUJFcnZnbmIySkhJZGJtRnFXTUJ3cXMxb1NBMlpwYW5uT1FBbDdG?= =?utf-8?B?ZEV5NXNrT3M3aGNwSzc0LzRmc2JMQUwzWXNEU29GRDkyQUtDa3Frc2JacnRZ?= =?utf-8?B?djkxU3B6YkNyK2FMY0dmaFZvVmZKeUk3bWcwZXdQWkNWVHBySFdVaU56R2FG?= =?utf-8?B?cm0vOTRjbVNZRkViRjZaNGMxT3JlL2wraVhHRnF6OTZ5MDAwUHVzVit3YnNh?= =?utf-8?B?S1JkVDQ1SlVqT2NsU1l2THJqWURvUkNkbzN4VXNjdS85cEZ6RTF1SFcyOXJv?= =?utf-8?B?ZHBsai9YdlhzWWZnbW9iYlJZaVBvVUNqQT09?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;6:/oMZk73464olzOP/oqO1WCEWTu3RjXGLEy0aIeL219uzfiqJ4/mH8blWJNN2l1/rKtbS9BGpS94WwJ1t20EvT2oZ7YvTs1eDKpoFMgrukn9/Py+sd4mC5uC7Xi3C1dTGaQq4+HLUDtk8eAMTFTsWvO4CESMjxNSHS5f2UG6fmPKYznTjySmbTfuGG1oCH0HumPui7tzT2X2ap+qHBBmyZ74q3U1qMRErSVVnVCpQsP6dnW+Z40RaXpEJM55Xk59b4POqT5/yykNH8XgWn67YEt9tgUWGFGbqmpqsAbtwK9yz3b9Jui7e0WblefRbw2qlMnswVtlVqJfGW9eY/HB0iHHYeU0TZr1jFFhbO5NR/PI=;5:c1gMpOcQ1cKqDZMIPlkXfStzEduYoHX73c+AtBXQjZwsBQk+y7TWrQ0VKo5bkocDkHi3589hk63/9OCXmLiQ6cdgACdHIE6GEwjstJQC2uyXAD9jO4uMcmpAvr5y+2szOrL92fqD6z3Mgv7drQ85hLq/z51isc0JaSsKOkQpPds=;24:UdgoM0TzP692EFtK5nMSo9NAQHtOSogceMyFH2dgLpnGHF2roSImfsWXjF4vNkpioOYB+UNApHa6NNmGrh10RILMiFR8aTRLFA1ctlzEfiA=;7:D4MX2nfKujSiFYhLX5sspRNQxgDssMkC/uUV4ExkerCzQMVpw5bougcG9jfso8DibnxoeheHq80NL734JxFGvsT7Yu8Jxx62ZiSLfEHtbPoBbM5nTXu2ZH52AoDKPox///YbGPplejdQiS6N0G/EBCtmVPlvW0X22wMGkK5h/6LobcYCZA6y/3mrSqwzA7E9uNmb3GtH7fPt3Wb+XLugLxFV3fBY9+Y4NF/v+XG7EU1GgXYLVVICjgXxWETqw6av SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;20:KCO2dcGJLdSpUZKwcq0cQmSprY5boeSiBHSR4MgWKVoNJHkuj+ED/CYnKVzPYzmEcPAnn6EsqA0ClptcKmaIPguMICkw/tvPtCCdVj3gfzyWStuv6e0/bP/dNSB9KAxcqbPsUCL5VDi79r4tX2ob8MVJKx7qW/Zv28QHrUst4yc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2017 18:32:18.4751 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d2be9932-ba93-4c15-c010-08d530450849 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1338 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch merges two repeating pieces of code in one, and they will live in setup_net() now. It acts as cleanup even despite init_net_initialized assignment is reordered with the linking of net now. This variable is need for proc_net_init() called from: start_kernel()->proc_root_init()->proc_net_init(), which can't race with net_ns_init(), called from initcall. Signed-off-by: Kirill Tkhai --- net/core/net_namespace.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index b797832565d3..7ecf71050ffa 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -296,6 +296,9 @@ static __net_init int setup_net(struct net *net, struct user_namespace *user_ns) if (error < 0) goto out_undo; } + rtnl_lock(); + list_add_tail_rcu(&net->list, &net_namespace_list); + rtnl_unlock(); out: return error; @@ -417,11 +420,6 @@ struct net *copy_net_ns(unsigned long flags, net->ucounts = ucounts; rv = setup_net(net, user_ns); - if (rv == 0) { - rtnl_lock(); - list_add_tail_rcu(&net->list, &net_namespace_list); - rtnl_unlock(); - } mutex_unlock(&net_mutex); if (rv < 0) { dec_net_namespaces(ucounts); @@ -847,11 +845,6 @@ static int __init net_ns_init(void) panic("Could not setup the initial network namespace"); init_net_initialized = true; - - rtnl_lock(); - list_add_tail_rcu(&init_net.list, &net_namespace_list); - rtnl_unlock(); - mutex_unlock(&net_mutex); register_pernet_subsys(&net_ns_ops);