From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753245AbdKQS1u (ORCPT ); Fri, 17 Nov 2017 13:27:50 -0500 Received: from mail-eopbgr40091.outbound.protection.outlook.com ([40.107.4.91]:48432 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1760625AbdKQS1b (ORCPT ); Fri, 17 Nov 2017 13:27:31 -0500 Subject: [PATCH RFC 01/25] 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: Fri, 17 Nov 2017 21:27:22 +0300 Message-ID: <151094324232.20009.275032920153331001.stgit@localhost.localdomain> In-Reply-To: <151094119999.20009.6955267140148739392.stgit@localhost.localdomain> References: <151094119999.20009.6955267140148739392.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: HE1PR0502CA0007.eurprd05.prod.outlook.com (2603:10a6:3:e3::17) To HE1PR0801MB1339.eurprd08.prod.outlook.com (2603:10a6:3:3a::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: caee54f1-3657-4ec7-4ea4-08d52de8da2f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603258);SRVR:HE1PR0801MB1339; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1339;3:ouev3xUGVno/OHbhvuLiUtv1Liuf3Q50Ib6XUwVYnXTX/yQUwl6VIklTmclN/S0hSNd7Gy8jqRZEgUItBfHHcAFv8yzyH1hFiAe/iSwffXZV8ytr6sifcksJ5sbQUSIgWMiLdp4DvtmtOF84jENuYKucYV/mrGgnfHIAsH2FmeZvxabT9IABcb788i74VXLAoFbq28ZVIxkqkddTBJlJyhwY/YDRGZWiF3eHB30QOFtTQyczukDjRgCC0NogJfS/;25:l96JO9BcHC4IRzhcx4HSwDRNSBxwnQsmaMEl3hNUux9m09MfZ3CKZXEL3npzySZpqKbWvHhpRqi9ld1S9FYQR92j1+da3vOds8ao4/5VoIynaSRlBdHAZU5DIypFoVvv+RAr6WXmy6KYXA9PtjfYQCvWnS0nS+YxtClqUa3Al4z0yDiSkqtHc1r2bIZBNTdYhcsRNY6jNwSfxblJZGOLLGgqGKtzHHhZVoaZ7wXsAaqgQNWxMrpZH7xV8pwz+wh43iQCabOvBAhJiCMAMyrh+qAY29bsJozVlWz2ORIi3MQvoPtSE1YA9FTlDLzpEJ9ceST7KYO/rycR1GZSCVZvWA==;31:7yUU3xDCX+g4cj9r1Uq6vimT4yPvcragFWp5HHkGOwrX8XuUM5Ajh3iwvBkVbekG4YmU36hY3G7LTzSERgxmuc5VmQiV2uL5vxQX2KHjyJ9lLy9VHqI7Fb2EyS5dLPJJdLDScGtMmvhWd7jzSQSkWqIoO/6hD84LzSukMXYXZOqG+SMbbc/C3ULOF5j0+UL5a+2go1Htu70UoCvdAbvvsgE8OUKmshsIEdQYj038xCg= X-MS-TrafficTypeDiagnostic: HE1PR0801MB1339: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1339;20:igBZVK9CFmjHqcDv2gnnd/ihgYc0qoB8ytp5lEnjBiGovDtyGBICBqSot5OslXlESixbanUIfgz4wfS1nArk//hJOntdj4OL5PvzMqmvtjdZHo6r3Gm3Ko2rhAxGa44rbvKtMjPWxawHKwmkeq61qRcy77hi4nnLDacdmUE9nlH5eohjGCTl7GgJImp68ApTGyCWiqWgVmj9ZRU/Y7vHfw4t7af/oeMG754CrjJZCt/YFrb8zqzoDPs9JRgY2lMZrMt+Mcmm7zYs6Za5emovn61T7+238L4FsY1Rv2kUR02i/Jbv+Q4oktopNyHWtlQvgjCOjS0ZLrAN8kP7UOE+rU/dMblvmx1Q0TOJKBfUKoDcZag2ChePhb1shRaQwksoWEHZUstWQWcDYWvCOuiOWILbkOyxuy77YqqlkFJxZGk=;4:Hu8nEouBGhXrvgU8fVLgPN/QtusGwd5rXDgd8QeCjoomusR2WBWNbOdLxZWx9wd3sXdCzpp4N6TW+F+CplWFmWzxVtlHyc1Nq2+ySd0T7CiNv0motr+jcPRNrP/iq+k/0crYJ1J0S1+dzUt/LWEfRe/dP64TMkYe8A4VAXOn4hTOWwRCQ6a+c67BRyTnnTlGYYZp7adjWj4inhdxix7ROAUMwfn+sTLUHWxppet7599ebkStKmzg6dtSH+0rjcoEdWGh9UlEYBqAXl8EW/iQ4A== 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)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(3231022)(93006095)(93001095)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:HE1PR0801MB1339;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1PR0801MB1339; X-Forefront-PRVS: 049486C505 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6069001)(6009001)(346002)(376002)(199003)(189002)(86362001)(316002)(58126008)(2950100002)(66066001)(103116003)(9686003)(47776003)(2906002)(61506002)(53936002)(81166006)(81156014)(6666003)(97736004)(305945005)(7736002)(55236003)(25786009)(478600001)(39060400002)(8676002)(50466002)(50986999)(76176999)(54356999)(23676003)(83506002)(16526018)(6506006)(68736007)(7416002)(55016002)(101416001)(6116002)(3846002)(106356001)(105586002)(189998001)(5660300001)(8936002)(230700001)(33646002)(921003)(1121003)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1339;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA4MDFNQjEzMzk7MjM6WlljY3UzWTArS1o3TDBqUnJWR3d5MUc1?= =?utf-8?B?ODRJc1RkdjJiZ3V6WkpXOXNyMlpqWTZRR3RvNjA0RFhNdU4zWFhIczN6RXFH?= =?utf-8?B?NFdSOVVFZit1WEJMSFdZRFJNMEFnWVh5L0pQRzZlcHNZYjlaK1ZtQXVHVnpq?= =?utf-8?B?VnpIS3B2bWo2NjlIR0dUa1drS1Bxaksyb2svdUlGUklGOFNnZy9xUzdaYXFN?= =?utf-8?B?eTMreXpoTndxSXBIMEMyR2NEMDlSdHJPd2szZkZadVpNN0VQNXF2MnR3bnJm?= =?utf-8?B?bUtyZmx2eWtVL0FCUjdRTDN4eHJ2NDl1Z3R4VGhveDZ0TFNSM1dEV1lkSHV2?= =?utf-8?B?Q3BZaVl3RXJDRlpGTkh6ZklnWktHR2NaY05KTmdFM3JvQnFCMzY1T3FvNUFS?= =?utf-8?B?eTVoNkR6NlRwcG55aWlGdnlKQ1hyYjZ1L2xrU0Z5Zjd0dUY2U3lWaHZhVk5Q?= =?utf-8?B?VVJERzBaOHZnd3c5b1hHWDdNTXVMVnBwdlBIN1hoVXd1TXlCTkI4NGdiVFA5?= =?utf-8?B?MmJmSmVLYkVBeEg3cGdrZFE5bFM0WTJYZFJxL3JNSmZ3bFAwREdOU2tiUVRz?= =?utf-8?B?ajVUdmFRU05rMjRydnFhS2pJdkN2WVkxOUt0WHJuWnBiZERBUzFBYmdVOHd5?= =?utf-8?B?bzJBT3VvWGVGYmpPN0hWaWVkVVdNYk5ZWEQyQ2VTdloySExSKzEwTkdqSlJN?= =?utf-8?B?bUNPVzJvTW5BZGxsdHJyam5ldnUvOXEwUHp0NmRSaGJKckwzVDNGZTl5UU1I?= =?utf-8?B?bnBkNVVMc1ZuY0FLODZ2cFlpNlg2Z3ZTbDdONTBWSm11V2FzNm1ub2hVREVL?= =?utf-8?B?c2p2T3hYaFJOb2x5Q2ZpeUFMUUU1Uzk4cTRqaGhIWE1Yc0EvWUNlU0ZMaU13?= =?utf-8?B?NlY4dzkwT3lYblN4R1AyVlMrTWtXSVcxUlk5L3F1QUNoWGtwVHMyVjVDQjJQ?= =?utf-8?B?SlQ3MHhpd3BObm1XNkdOcklVVzRIdFpGVFk4QlFFN25PNHM4UGF3eGd1UXpi?= =?utf-8?B?b1B3aU51d1lzSXVOdDZJaTZKQzZELzBod2RvREIwOTVHMDdPSFd1VkRnSFJ6?= =?utf-8?B?aTVieUl6QnpubGVPQ3NFNXBkeEFVbVUvRFM4VExBb2FkRkxyZllWdG56N2pJ?= =?utf-8?B?UUFUSXRraEU4WlpRK0pXTGd6YUlNcXgyVGNLOS9SQ245Qm4wZENNQmRKbnBJ?= =?utf-8?B?emNXZklWbSs5NDlaUW9XaTBBZUlneDB0N29wUzhORnU5UDJJSm92VVNPdUsy?= =?utf-8?B?WGRaQ3VwQnJ5M3BWWGg0b0JWMzNqMGVRSHEwWG16MXJEbStVRndnVFNaeWNy?= =?utf-8?B?bjNOQVBZcVg0cVkrYlBTK0RWN3lQcS94ejVoKzZoNUdmeG9uRXk3cFNIS1BY?= =?utf-8?B?TEpReTNQdUluMDZPbm5yUmg0eGNsTTZIQzJxRGY0ZlJjQnRMVkxjVEhiTG5E?= =?utf-8?B?ZzFLQU8vVW1hdWlBd1I1MlN6eFoyQk91cGZaRkZ1T1RtbDVKa25pRVBieG1F?= =?utf-8?B?bXZPazhkd284enRROGZCWithRlZlTEo0a0c1N0UyMXdnNnU3dXdlVFdjeDc4?= =?utf-8?B?akVEUXZ2L0ZBeTh3a2x0WHlVRnRqVmtaNGN0MnhQNmdoZitvenJPaE5XTVRl?= =?utf-8?Q?/XPxRCfbh3ijqTeywzGq7Z?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1339;6:JCftsbF+zaXD2OUmtberIaB95oaDv7MlfWeXWizs8s+XpZL7mlhB42dIFzbGtn6c5JjsK3c90rE7bimrJk+4k2RiZo5kfXmAcbN6mEmAX3Rx2cwdGJpTEmY1zdPT+7qGEwux9Qj+w4gviQdBZuXf0H4EPHu7gCIUu4D5GA6Qk3EQrHgcEWNqqoPLYUxf+q61LQti44L8B+ILPo+rgwKcWKj+wue/HzOn4Iorqo4nRO4OGJ6EMH9Ft9XdsRnb+OJgY/Yi66BCCt87A+c+itMYkmetRiodiij6p5/7E/8jpACR0OVT3FrrmBI+zLdoUQwQiyezvf4oCFdSeQQ9+8gf6gOksIWmAfhutZTKtHNH3a8=;5:eFCJrxPDobT925dI7BlxHdsIp+T9dwkbrXWn7yJxFYkKDtyDN+h4b+s6PMJyhbvgmfX9YojgChwrbvKL9XUTYk/ZrEDWezXA4KYrlv3FA+JK3eVX4QoVRTu3VCYha06QQO9AzvN8O/y/6uHSR5Jq7xGZFV/dtLZeJ/bjiV7s4hs=;24:omzp5k3vsMGpn1Cx3muu4bVIfEdzHZrc4pENHjunqcyoiTj0e9XvGVrNDZ4T92p3lmPqEjRKyjhamHWPAzXKkE5YFt/zQqyC+w1hkj7ptI8=;7:5gl2UMdw618SAKGm/GW3eIrODdA/lFWVNgKOs35LCBFIxJfGxXX65zxZy/E+JrLDleG0U8wEWdGG+jnXZTjCzKINKE8KrgmD5AzrmdxXpWkds0jpcyetqODJbSRUISnjuxr2mlRPnQXiJOmlOp+iGKixpZzS8YaL877iDhczAfWn/XkWkBFH4dllAcvKQ+Zh+JKEUV6nhfrX3RlWKdh9mi7rGslOF7yRm+dn/bi5AVIKd5+Sc319gYu8xTy4Qaae SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1339;20:fBAPJhkuJEFy9wwW4KhVQfP8rTAFW4S+7vivXSCAp10gCTqCR+OfnEbAF5tq+369ZrPZ5DvYRlNJoUMb1buSn0XS2HbAbkcagmRmD9dlULhM1F6daQCwHSor8RYbKQL9RWjwqaNRGxjprC+tqFSSLYXR/XOFv4Q1PL60SfXFWqc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2017 18:27:25.1020 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: caee54f1-3657-4ec7-4ea4-08d52de8da2f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1339 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);