From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966235AbdKQS2n (ORCPT ); Fri, 17 Nov 2017 13:28:43 -0500 Received: from mail-ve1eur01on0120.outbound.protection.outlook.com ([104.47.1.120]:51558 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1760635AbdKQS1l (ORCPT ); Fri, 17 Nov 2017 13:27:41 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: [PATCH RFC 02/25] net: Cleanup copy_net_ns() 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:31 +0300 Message-ID: <151094325157.20009.17544196243500552454.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: HE1PR0502CA0017.eurprd05.prod.outlook.com (2603:10a6:3:e3::27) To AM5PR0801MB1331.eurprd08.prod.outlook.com (2603:10a6:203:1f::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a44a9aab-1d38-45fd-15d1-08d52de8e059 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:AM5PR0801MB1331; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;3:MAE5D4JLW4kXA6+1Vo122MOqc9IcE1rYMfme+rIrjPCiHPyF5apaf90Fmjgrd+L60tXnNAJVviVo7PIgQNbZByCQuDG7fzNB88MX1s0DxtLN2FWs+pA84Fc+sDe/P5Yzd+vhUB949z1ta3BzYb7BK8tEW4KEFG7522dSf1weZ5SHan3LnCnNP+ifnGBYNBtVucQ6RgrP+ciC1HpPkieZI8baIOOU4F5AQkjzjL74DQoHQJz4EiGqOb+rtiUATQqF;25:lmXy+blkX8NTzmfTz231iz5c3SKxjKVo1oCtavms5fyrqErGuSq9kaQUM9j6ls7jWIQhsTzkdRWJSzL8pVRr0J+V+7D+p/O4SJ4yfu13wQ4ZETeiJIPffdLriVQjngtGoQuXAjYGc0GRCS7m1h+Ayze9oo4YzjlQGtxDJfsECAtrMAMqSD5d0J0ucZY1aEUFKH3ZFOLArQyR0mkJQO+UDJP3dYpny0+UQ4tQX3Z8fHftyYggAYDL6RmytHEZY5TDxTr/sPik5JXYXVzh/kSQmk4+suSdYv158wymVzXZB09H2VIHXTGEpp1yh1XuzcseJzBmp8AzXT3V0ZQIgdJhdA==;31:mBXciQ+BXjUaSJh1DvoR0wBt+4BDt2hXxsiZ37GMnDEvXFIJK6adJU3S7jJw3dcSkG8AU/np+6pB3WiedfHBHXTERCZGlDEzZYoFVZb4Xo+TCBE7gdtuauhkR+GoKud6Qr8gNP0Jfswx+UNNO7Rw77btkTBvYeDd29nt+RmHlfmQdc01ARYxJ8UgKJwyZ/SC7SUYlpOw7iLMa5DWyI4K3Oi0vXfwkLrhnxdsOes4nYM= X-MS-TrafficTypeDiagnostic: AM5PR0801MB1331: X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;20:Zd7HYe6/UTuT9jGdLuQlmXzmkM5UVITjjxWHcfy3rPKAl9WeoLJJBMNxuTvimpK9MABaDOmukPHJsbd+pYQxOjjjnP0WP/qnnZrMv3IP9eqK0GuZ9DcShViJeMAamDfSaSyi8/C8EsR2CraEzm6oH16xx96qA3htnvxN9yUYkVgc8U16SNoqvi7IocFXPWV2macmTEVRz3FfwP5yZd0eZMUDYWxe7iRJ/YLBRrA9z3IHrySAScJqls4YSJ4w4p7hWQ3RONfH5uuTH8/58S3l4jvyZkMGK3Peiuw09TIK/DzB4tzhh4SH+uYwRgPx5xnVnPfNyoJLFslkAScg/+0vlE/8J8Cbjgb1sgyQn48V6PANx9h94XUFQ7y7HuV0fvzS945LEkP7OjWyc2snTTthCZ7qLW4p9REcoE2agIy+/zo=;4:p56iv9lCA5cIMaPIrN0k2rF2pYTfg526r/XHDBgu3rJPQT/ZBgvaAVKsb358yf/vymIiSHppsR21stQGEzdhSUWcj/UuYdhXyaHoXT1fP/hZZ5egcBzk4hksYW8n34dcXkeELa65aG/9+HfQ0hAiIGDwR2UV0GFUMh2+u4IIXoMH9XHr1QDDAUClPwGYFJpNbCVQ7+J/jJIfNU8qmAd0vYMeJ2OB3Xw8y4ErpYPmEP615osKwNKst8GjSveplj7uJ46Let6MpCvzk6f08r+xFQ== 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)(100000703101)(100105400095)(3231022)(10201501046)(3002001)(93006095)(93001095)(6041248)(20161123564025)(20161123555025)(20161123560025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM5PR0801MB1331;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM5PR0801MB1331; X-Forefront-PRVS: 049486C505 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(979002)(6069001)(6009001)(346002)(376002)(189002)(199003)(66066001)(9686003)(7736002)(6666003)(101416001)(316002)(478600001)(76176999)(50986999)(5660300001)(54356999)(3846002)(83506002)(230700001)(7416002)(16526018)(6506006)(61506002)(47776003)(55016002)(305945005)(50466002)(33646002)(6116002)(189998001)(68736007)(103116003)(81156014)(106356001)(8936002)(105586002)(81166006)(2906002)(8676002)(2950100002)(58126008)(23676003)(25786009)(39060400002)(53936002)(97736004)(55236003)(86362001)(921003)(217873001)(1121003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1331;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA4MDFNQjEzMzE7MjM6cUF6SmFIWVdvN1ZQbERLRGpNUG9aYXNI?= =?utf-8?B?V2tzTnFXaFlLb3IzY0Jhb2tyQ0QyblRldGtRWlRGKzRPK3BBclE5RmdLN3hr?= =?utf-8?B?MisyOGc0YzBER29Bdk9PVnJYSWtjWlVSQ3JaOEg5cVN2NndOWVdsL0RBUFRq?= =?utf-8?B?YWlLNVExMnNRNm1jdy90Z0R3YldHdG8wK3lrbHdKVWFrYm9EdTBwRlFkUXBa?= =?utf-8?B?dHdQN3NtM1J0WitCQ0YwdDNPMjhubHlqdmQ3QzVSZWYwVVB0SUp0S0hQTWVQ?= =?utf-8?B?ZW9peU4wcStFVEhSMnluT1NNYmNZQm5hcVVab3h6Tkk0M0dLTDhHeDVyQVZN?= =?utf-8?B?RkRSRWMyVytnVWZ5anVRZ0Rtenk5Zm5LNkovQVBRMi9mVktybUNUcGlFKzZh?= =?utf-8?B?dGl2bm1uVWU3NEpnNUJwMGdtN2dMYkowNU5zOXFrZjNNaWF0aHNkdDJaa0Vz?= =?utf-8?B?dC9Da25obWRhL1A3bjluMHBLM1NNaGZGSHFwUG10ZmZHa3ZRbUFLV0RlZ1JC?= =?utf-8?B?ZmRvc1NJSGJ6NVlnd3laNUxVcEhLUnZlSTgvMW16MkNYSGJaL0djZUhHMFdO?= =?utf-8?B?aHVDWDBIbC8zM2RIcnU1ek83ZlJhVkUvaHhTd3pveU1vOG5mT2h3TThCMExI?= =?utf-8?B?cUkxT2JWRG5WTGlQdmQvWVdSNWVYRk5xcXI5eXJMRk9oK2pWL2wxZHF3Um43?= =?utf-8?B?T1ZGSnQzZngxdm5ZZldrRVZsbTFqbDUxRjNJWkpxSUliMkZzWXN6ZHNJeXFh?= =?utf-8?B?SW90WGsxMkRpRWw2a1NsSGY4OWpqcDNtK2krSHhNNW9xYndPbm5MTGpaQkFk?= =?utf-8?B?Z1IrV1pCb1VXYlcxUW1oV0tBWGh6VDhRaWtJK250VkowcHVJNGJXQnFaYno4?= =?utf-8?B?R2M2dHB3YyszeHkraEZJMmlxMWsyRitqdE5oQ0hOeFBDMkxBM0xSb3UydHhK?= =?utf-8?B?Z3dnbFozVXdiVzFDSzBiUG5Lc1FwelMwSmd6MDRiUnFZYzJpNEdYSVp0QTIy?= =?utf-8?B?UHhDT2RDcHVGQ0M3VDZoTzNJWWRaQ05iU3loem9JK3RsSVYvbEQ1VndBT2Rq?= =?utf-8?B?RUpFOE44NEJqYWNZbjRUTmhqVVVuemYzNE9VcGFjOFpSQy9KZEJlZ0xTRHdx?= =?utf-8?B?Q3JMMzdvNkpKWlNPVHVUK3JLRnowSmNOa2I0NlJBTjJ4Y1Q2TlFFcjNZaXJi?= =?utf-8?B?eHBWZm5jT1k2Yk9zV2pZMUU5dng1VVNJa2pYWTZNTFJvNXIyRGhHVVNiN1gw?= =?utf-8?B?bVUzSS9KMWxIN0hyQ1JWb2cvSHZHM2ZXbHgycDI1dGh0TnJaTExJbjZNWG03?= =?utf-8?B?UEtSaE1qSFZFK2d2UGMvMEYxS3l6cWhydUtQZ0x1UW1MWHY1MElwTHorRVhs?= =?utf-8?B?bTZYb2E3b3VMWHFtUVFYRWszSmpqNURCSVozM2dEbWNndTNlQUY1Z0Z4MnNw?= =?utf-8?B?NVVLZ29lQmc1eERNSUZZSU0zb3FhQW52bmZiSGpwc3VPUnV5SVpuUXV4Vk5T?= =?utf-8?B?L1FNV1p0VFhHek1MRW94YzAzTjdJdnNWbUErOVoxOFh2RWN5SkxYTWpYcERO?= =?utf-8?B?RmM0NVJCbTN4WWdmZTFyUUFLSlNYaHBMRUZQTFhQT2NyY29oY0poV3padXdW?= =?utf-8?B?Qmp3Zm5ZRlliTmNhekdLSlVYakZjbzl6WE10ZGgwdXZPdXczb21Dc2RqQkVw?= =?utf-8?B?SWVJbm1DVVp1L3V5VDJRRnpETkRKeXhYTzNxRnJPWFIyR2RZcmZ0WVE0Yml3?= =?utf-8?B?Tlc0ZnhTd0dkbDJnSUxuNDJ3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;6:10Ti5/nYCmIWjp7rwGZcJx7eyIK1t6Nimdn1VRxH3SO08z0+6XH3RBECkJqijTulSbygXoTxOX3PZ/tlwgaphcD7G/SlW69v+0UgK8tcpRPyvynfWbOBSNZC3rqTCyDQ4FPNVhoghrfrXDV9DPS47eKzsAhoQ1bOsSwa00Fq+OTbis/OprqESPC4hCVIu322T7HEdejw+brg7cR2UVPZaQWUmKWrQXC/h5t8L1S996WE93xyfAMfS6wWPBo1ZiKI/VltRlm1nbZ2SzcAqrtE1L0duIU6AqxnsiCpRPW9JZsJGejyf0qNnF04877Od5khY03LoVscVcL5hRL1pj87Pa414EoYvwxj1yPgc0rbNUM=;5:GlEW9YjU7MZSx8kOYzpwv2qs6EtsM2ISOhmwVXtypc37Y94OcwtgWd1LzGVt1YSUmbyexc0YvzWg2VE6dxeymqcyxyMSdjXyMRFc1JSszw6X8+LDkvEyUvi7U6jhuv1RJhVVuAgXj3DZ/kgsTOqxK6SSGcTAgkXfLFpPWDejQ9k=;24:8wZVy+ihYRqLqLQ+kAcAVzS4UA8pZ/LDAqtb4gApiz2/SVxD+KXLbriu2D/sfHvIl6jThwGy5AE6tDpLM3fQL9O+PSwU44/AU3c91IjfP0g=;7:wLeuWx2uz7eb89/X4t3eB91rj/27YCV0lElD9NKz3WBMo5BX5NWe+ugVAJ7niKNiJAKV0keLn+5cQmFDPQNcQxBjrOTjIzyt20wixmRuI/ZcbCdhvgAk/JnrFXVVDhWpa7VLFt7amPi9YZoWo1EzDGYyZIhcTOrj+G53yRL7umxFMqG9Ulh/sbfhy5uk+OvAFRCZPd6vejArrmeD/rQh4lloZK885cdgrK05UL97sCFSX6Mg8tVJuwpN4eC39eSe SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;20:jq1KbdwzmqynaT0SBzO4pvONqogo5FJeoLNCVwT35PN9gRiQa41bCFN1YKjhuQV+aa4hm/d1USOZPsFAveC+/USuAEcQ6S2sa4g1izHGWgJ6ruOixdE3VOVPt0CAqBXLN4EarBL0rFn1/fy/W74KGCrd1+HJS64DUemDLxhcegQ= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2017 18:27:34.5983 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a44a9aab-1d38-45fd-15d1-08d52de8e059 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1331 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Line up destructors actions in the revers order to constructors. Next patches will add more actions, and this will be comfortable, if there is the such order. Signed-off-by: Kirill Tkhai --- net/core/net_namespace.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index 7ecf71050ffa..2e512965bf42 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -404,27 +404,25 @@ struct net *copy_net_ns(unsigned long flags, net = net_alloc(); if (!net) { - dec_net_namespaces(ucounts); - return ERR_PTR(-ENOMEM); + rv = -ENOMEM; + goto dec_ucounts; } - + refcount_set(&net->passive, 1); + net->ucounts = ucounts; get_user_ns(user_ns); rv = mutex_lock_killable(&net_mutex); - if (rv < 0) { - net_free(net); - dec_net_namespaces(ucounts); - put_user_ns(user_ns); - return ERR_PTR(rv); - } + if (rv < 0) + goto put_userns; - net->ucounts = ucounts; rv = setup_net(net, user_ns); mutex_unlock(&net_mutex); if (rv < 0) { - dec_net_namespaces(ucounts); +put_userns: put_user_ns(user_ns); net_drop_ns(net); +dec_ucounts: + dec_net_namespaces(ucounts); return ERR_PTR(rv); } return net;