From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752585AbcGXW1x (ORCPT ); Sun, 24 Jul 2016 18:27:53 -0400 Received: from mail-db5eur01on0136.outbound.protection.outlook.com ([104.47.2.136]:53532 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752206AbcGXW1u (ORCPT ); Sun, 24 Jul 2016 18:27:50 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=avagin@virtuozzo.com; Date: Sat, 23 Jul 2016 22:54:15 -0700 From: Andrew Vagin To: "Eric W. Biederman" CC: Andrey Vagin , , "James Bottomley" , Serge Hallyn , , , Alexander Viro , , , "Michael Kerrisk (man-pages)" Subject: Re: [PATCH 1/5] namespaces: move user_ns into ns_common Message-ID: <20160724055414.GA17270@outlook.office365.com> References: <1468548742-32136-1-git-send-email-avagin@openvz.org> <87k2gbmy02.fsf@x220.int.ebiederm.org> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Disposition: inline In-Reply-To: <87k2gbmy02.fsf@x220.int.ebiederm.org> User-Agent: Mutt/1.6.2 (2016-07-01) X-Originating-IP: [67.183.159.197] X-ClientProxiedBy: CO2PR04CA038.namprd04.prod.outlook.com (10.141.240.166) To DB6PR0801MB1973.eurprd08.prod.outlook.com (10.168.85.146) X-MS-Office365-Filtering-Correlation-Id: 124155b9-31d1-4227-441e-08d3b386fabc X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1973;2:+rcO+T+9L7Uh88Jbt5t97Nb9cx9gE7QyX2enE2TK0qzuK0+1QZW9Z3YHkDudzd1XB/DHDDkV5gk9/NiZHP2ChaZJS4jm8fx8JMwsarzrBw0j5kdQ6EhksdpxRH0nYwneNvZ70apT5dXTjYwMEGRnYskQVDSqZcT5vv7FwBJHXwEU6ukJW/7UqkNLxvB9/s9O;3:3BJT1bVY4pyM3LAdliHJ7k5a+cX6C4MIm98hDPog+MlNvF5sv1NYHwXa2xJySfJ8HBDN660OiWbHzQu2GPW6oTil5Bxk9msMhvO0zdDdLZx3B5k3k7H2faQbGdmJmiK4 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1973; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1973;25:pmeB69R+fI9UWjDxzu62qIiSC8h/d+cPOVskQPJ6vCzyvTIawrrwbPECqEVezVCOeI1UlvVMl+dFHnJNwHLv6dOXRFd1yHSY1EhTdRC8ioCgP6RK+0NR6nB+FXCaFHcRXuz014XG0pvkrJi4b3WD1/FQwZAlk30gorjmxbFcTXiwKnqc87zDX3ILHEkJt92Yghtpe8fAahl29lIjccsA/UZVvB9wCTDMYMNoljLU23MuhaVT1JwZ7M7GMdlZj2P30SKeXVwr/ual4epaJ3VnWUiRyj0BZUaqnUo7fffAcyQzaJDbu/frk/8t/F66CwExr4AWmd89POtL9/KVgsqQeVy1Ne0Xp8/fAOSXTRedfcAsdl/ckdBHNycNtUv1Gzjl8hxKx32Mr6qOrXK0SxUyxed8bjjhUe66DNO+4l+j5Uz/7F5xYvdcJVWG4d+/OoQFKczHJXt7AS8gCQ3c3dkiuDyAH5Y7iJwvE+nZ8FJb3VGNjr44y7mdk0JUeXMtbz0OgUnAa1H2Yf86AbtWhGcH067uA09We1u0ROM+X5eZfz2K4VHXjOtfCnXbAxAV1AtNSImRAU3RcBmXMlotKUzYLSTfYNeiPs1wAHY3kO+WNv2sFZwqxBNuoA1uFenJ87AZRBW+SD4PMYBAfBWx2Z3eVnssg9Rjgd+N7f88nO3vDlFxPTzAz/DGQNZ/d6kXRnEx/ye0FOtT1yWhWQFBUaOGuE7YcUNZDhxXEVymzx0ku5Y=;31:iF+AcWusASgbhcj+9HNo1Ejj42ai6IQ/KgsRweo0ehtvXkl/FKNvcET5MVXciAIsTE2MwnRqoEWGKJmpfF1jcgU9nWwxsMc7r0pmnDjZ5D1Z42xCJoJEC17rWCxNiOTdeP7uNbTOXt4TSQTe3i4lsb/yWVO96kR3FlXqC7D+KXred09AWHnHukvbO16WagGnCfBUmCSdaE9kpfcC7DQWTQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041072)(6043046);SRVR:DB6PR0801MB1973;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1973; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1973;4:LoH/xj5nCaUJd9sInJ3boisXl/vqfQa0nmbxM8yB3nNDupoHQeFTps04LCvWYUqYLHGN1ir6O1dAoLBLjffWm//pll9vIE5NLuXxkFtgFcOeuQuGfAyMSvTvk42RYU6Z/oSAG3Tk91aix/G31ZbhOhVRjoYgDGq1pAKcCb+DuamaVJByRLdua/E6HfXQmCcmJe3agQBfu46zJx15nxmfkzgfT8yRwOPf3wv93n1Kp3S67Rsbpo/sA2oxZrqkKYagTXeAwFHsmxbYQMVY6tMrpdhaJqLJMYN3ijaq+72l4mORPfUPrXno3XDOnXPbWvGoT9jvzViSyYD+wKX6tiVhzUVM7i3kuWIJv1dj8noYmeMQYzIpGiSN4epIIlpDv2911vZX2fs+mUmfrSt7iSLrfuwUTe/pYxZhFMOcMi+vaXw= X-Forefront-PRVS: 0013079544 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(199003)(24454002)(189002)(69596002)(83506001)(19580395003)(19580405001)(106356001)(42186005)(53416004)(50466002)(33656002)(47776003)(66066001)(50986999)(54356999)(76176999)(86362001)(105586002)(101416001)(7846002)(7736002)(4326007)(2906002)(4001350100001)(81156014)(189998001)(81166006)(305945005)(97736004)(110136002)(92566002)(68736007)(9686002)(1076002)(23686003)(8676002)(6116002)(3846002)(586003)(77096005)(2950100001)(18370500001)(26326002);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1973;H:outlook.office365.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?koi8-r?Q?1;DB6PR0801MB1973;23:8YlnUSU9vDg9sR4Wa77kaRYR2ki3gIg1RBXUq5mW1?= =?koi8-r?Q?jE7NnGp2eSzufNrLrIU5FusZH2p/2ouOdxab/yvOBfbD6CHM/ueamxU+xjPrmf?= =?koi8-r?Q?YPM94e3TqakU0CpN7CvPwLtS72SttmJF+1vhWn3kHc8IrDCA4QD5AybZUyTTt3?= =?koi8-r?Q?251R6MGQJdcPaHNABIsTp0PwSc0O9kzeJyFzLSDjCUlVOU5VHFGRVZySsho50D?= =?koi8-r?Q?hrpDw4i/+MYRx2naHA5ZMNeIr0ft6IeaKcWy5P79Y+ah/qVjxP/iyFiEdUqkyv?= =?koi8-r?Q?hvqgUpKMgKr1F8GEZI77wKG+5ii4K7YodjNe0fswD4BDawPN2PwycP0ceJRW9O?= =?koi8-r?Q?BDFqZVJa+ycybGZjWSTqYHuNqwvVjD6zxgFaKqBowH8EU/rEPFOPPHh3EwU5xy?= =?koi8-r?Q?P+XhWP5a9uElaj0PvTBp0gKziZXm1Y5Kglru2LlFusb8yWFUaTVcJObhRMw1+s?= =?koi8-r?Q?iAwrBjUWGn4aoCqyoVesu28dw1HZIFPjs5g8ENY8z4GLIu3Prg9J61V/UIwAVP?= =?koi8-r?Q?o0o0XDZhrOJlBBaZjpdJaTy1PDTrHVwfaG1//68GeBvPf/0sfW+FD/RSKh4gdp?= =?koi8-r?Q?v4ol53ynQ33ayA2iB1wn8Nejk70xxQKPZ8M8b4Tmsf9qi2AhUECrC+wQ5iD/ZJ?= =?koi8-r?Q?4uxz7qbW3GO7o9eJpCvFyAGc6W3ClfxJGnTzur6e4ZTsTPtPDTPImo+9ne3Kaa?= =?koi8-r?Q?YaGt9RJY1d8GTolJ0CSuqyy1av7mMFim/eOqHfxXBIbcwuklpfWdTf1wqwndoo?= =?koi8-r?Q?oyip0maIVq9+hKT9PbU1pQeikVbbDdlmrVMWF0FwI4LZULk1iKGb2DJzjy+VZc?= =?koi8-r?Q?BWI1UJJWTL3MfFrmatWtOk0Fgc6qzkgQTkjjA0U5dVGkJlpflsTKS3orD4znyy?= =?koi8-r?Q?xk8tCNM+TlappgF9AU2nrcG3RrcLwl+Z6dqaivh+6MUjQ8T/cWg4o56ng4HrCJ?= =?koi8-r?Q?hjjWZ1ijyyscJJCWU9tpUka2ya9zKhKfbwrp7ZLOpp8rPpqxG5/IYDw98mvN9C?= =?koi8-r?Q?xbl4jkLiE1fLdlNNHYB1o2aUerdA3j3VGIX98f5Tx1tBTXvPcKfSg//YPLHGEK?= =?koi8-r?Q?YvSzrQHT7rbsAXEDwTBmZDDOxRhhxPb9MxLvCM25RXog2fzx51URs8LBtA6s05?= =?koi8-r?Q?jIGfmPUsxzH6mY8uMjtsXL9RChNX4635zmbeGQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1973;6:aNclW0LK+Aq8fUQjGHdhLT2jJRRPFEH353JFLnGlfpuCpN3mW6pRASL4p8XZ5tNpm9ZwBmUHTzFjnLGPO5p108fyEb2yqXO/xnjpobjxFo1Q99sbGcRYN/LMGAAI3gJ9lz8Er5O5l0KA7XRD7U5+oKBQccX+7dV/P7FtB/kMpARc/5CpwpXgAK6Rt2UrxbPSiMafZRqSGq837UWQBIqFfw0HR60M7pcAOJ3RyAJXKdaCrYFh2EVfja16xRmF6Bc2U4ucGAPuAZVNdHvtLIPCema6nF9cPe4sNcZy0ggc/BUfgLK9Dxop6uMu8V6w6T4C;5:JwApYEEjRiLLqu12MSdnOsW8IoNTs+Z4wIdvzfOWbTaIy6y4+BiGtyKQNTbgdjnO/csYCESs4CMOr+gXAMH59ZIHEuy9BTTKNRUjKAWZK6zThV9NS0Kxc/jhJmIBcBuHXrgHRZ7xtfjX9IYjAL7VRw==;24:OVsJ7MQnt1nw7FUmPCUrtl3sh0cqcBvgGgZz8WsdtpUNXsEizOD4pewz6dmbNOsh0qQzaJTfpdyrdVKJRuFTQPS0/4j3ftB7qwtS/iw3ivk=;7:0qtfsMrAPC6R10eneks+IEmtzFYV8P2QenYeMiQgSyz7r4WfKxBc6ixD0SMTpOvy6njqmcA1CfjLuIuusO6/5HHMRljlyKq2Ckj1YLx5CK1wo7nYpx7vILLAcHTUN0P7FkW9u2XsdlouYalMiBfjgla5KARS06nOvSUUYYDpiiEaZUl10D3aJJDSAjJt1R9CRe88C78w+Ls0qzD7sA7YpZtvea7P60Mg6rVp5+2f9OI+Uux0iKG24SvK8so9dEc5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1973;20:xnsvK9ko7U3Hbz0g8Iz/dI4K6+QOvIRVILCUzgoBMHzWGBhFkrMCcF6czuNs/hWq2U07SvjO5pn5pCRoxGnGySApRPzB8Gx75JNLDK+jx0e3GXUFGP/Y7i47v4ciugTjyY2p4jRy5SNkVDsm5TcQ0fwU+g0AGnz1wF095TJ2lRI= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2016 05:54:27.5871 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1973 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1975;2:humXsADR8YhR28JdcuOZEjmmNAnsjPAAKajJfAvdG8J8pwKEDpJ3KYAG3tKYijbQt/z9uJ1PsTBnO/aKpsHHszxg3/91OLypSIN/AS8QUzv/4vzbjyhTUEnoKtxRcaoJLBkA6iUmWGbi9ZKfOFHkTgLVNByrAqK8Z4V6k2uV88Y6LOwXRdEndpSNlW3crEWH;23:LzONvUiGW18vFfLu+V1dhyADEryJYHMi3W6IM1DGpfaavBCDdGpmqA6+uVsf8QmE8MvTZC3NNcfKFlS8sUg+zbxcdo6oG5Z3P/Jky0jp/9KoceSAkighzpte4xXyQ8S8oFwTHBdz+/vOml0wkjUpIRe6SPOSdt1QuGse9luT/5BMgLa0Xi9T1tcGDpdZGTIv X-OriginatorOrg: virtuozzo.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Jul 24, 2016 at 12:00:13AM -0500, Eric W. Biederman wrote: > Andrey Vagin writes: > > > Every namespace has a pointer to an user namespace where is was created, > > but they're all privately embedded in the individual namespace specific > > structures. > > > > Now we are going to add an user-space interface to get an owning user > > namespace, so it looks reasonable to move it into ns_common. > > > > Originally this idea was suggested by James Bottomley. > > I skimmed through this and I really don't like move user_ns into > ns_common. If for no other reason that it seems to have guarantteed > this patchset as written would not apply to my tree. I am not insisting on this. In a second version, I will add the get_owner operation to proc_ns_operations. Thanks! > > > diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h > > index 8297e5b..a941b44 100644 > > --- a/include/linux/user_namespace.h > > +++ b/include/linux/user_namespace.h > > @@ -27,11 +27,15 @@ struct user_namespace { > > struct uid_gid_map gid_map; > > struct uid_gid_map projid_map; > > atomic_t count; > > - struct user_namespace *parent; > > int level; > > kuid_t owner; > > kgid_t group; > > - struct ns_common ns; > > + > > + /* ->ns.user_ns and ->parent are synonyms */ > > + union { > > + struct user_namespace *parent; > > + struct ns_common ns; > > + }; > > unsigned long flags; > > > > /* Register of per-UID persistent keyrings for this namespace */ > > This union is unmaintainable. It is very easy for someone to change > ns_common and accidentially break this. The C standard does not > allow data to be accessed as either one union member or the other. > Which means semantically this code relies on undefined behavior, and > the compiler can do anything in this case and gcc has sometimes been > known to use that allowance. > > Eric