From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754916AbdDQRgQ (ORCPT ); Mon, 17 Apr 2017 13:36:16 -0400 Received: from mail-eopbgr40094.outbound.protection.outlook.com ([40.107.4.94]:41147 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753914AbdDQRgL (ORCPT ); Mon, 17 Apr 2017 13:36:11 -0400 Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=virtuozzo.com; Subject: [PATCH 1/2] nsfs: Add namespace-specific ioctl (NS_SPECIFIC_IOC) From: Kirill Tkhai To: , , , , , , , , , , , , , , , , Date: Mon, 17 Apr 2017 20:36:00 +0300 Message-ID: <149245048927.17600.6201635115178279430.stgit@localhost.localdomain> In-Reply-To: <149245014695.17600.12640895883798122726.stgit@localhost.localdomain> References: <149245014695.17600.12640895883798122726.stgit@localhost.localdomain> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR02CA0001.eurprd02.prod.outlook.com (10.170.218.142) To AM4PR0802MB2276.eurprd08.prod.outlook.com (10.172.218.9) X-MS-Office365-Filtering-Correlation-Id: 6f0b097f-7719-40d2-c6aa-08d485b83ad7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:AM4PR0802MB2276; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0802MB2276;3:5nB42LiZCuH7YZCS5tSe5UvnEl6AmbWZNRsqzh3X4F2HT/ekCSo9evowfj7+6BYhS6u+Kog5zRSvU8ZGY5glLOOuoWgtT4p45nJbbo1XBzgclMJ0zUAatWYuz1uvSzCr0dJEWMZQOvrwcTYOULuX+prhYt88bLO8etDwV0Mr3MpVmuwx13X5uhpr9t7dxiKCEgC96w7WuAV+A4SsuUwKX/Jj37NEfhMiCzi4McjV6kDOzEffe/4G+zNxOKvR6SE27fBMdD0+cAu0mrFsJXPo9Khkl3n8F3D5YEcFElnCPpZD441z1N9dvdQPRhfjvcCyWly5Zc86aI7uPYEIaHGVag==;25:pUXr6oqch8+RyKFmR4PreDzP+cu11ysA/ID5FY8jB3GCA8zIR+npVBRnZO8B4ayOCz4nucYoIeYIF8dhYejhmm6IPgTjTkrWtZnzTBCYXTm9+6BeKlWbgiNa/vBaqvcAwgKTWJzTk4OPmci/BVfrOT39glN14e0nkcdGeKTKi5BVWOSVJu0AjJ2avBrZjpE8InyAgkVTK3euxUAv1Nmg3S9Ny0Q8zBXYhwrhtnerUTYLKSaaVQPapc1E/Ujfpl1FwFaYhD8q87NBdzLyeEjEW8U5vQjon8JI8jH5yQ+w/YaNco2CwwYU3587UecfV8Oxd+/bO3MGaybYo2O6/lULOmeHqNEIQ4g3qT0Kt/cBsyh+GBKtGBgjOwAJowkMDf9CWMTFm5IFf8jqzltmGAdDBSVOwUYPOyIoZKT0GWHOs56ioDUGWtd5LtNVeQIyhgyflensPyNRJ9Snkc0yzgS1lA== X-Microsoft-Exchange-Diagnostics: 1;AM4PR0802MB2276;31:xksKxqjjyqE0hMUO8svag3pTYSLJp9fdkayYmruuG00lDmtiPQ4BX8fUQD5fLg44RDhU8gxDRl3lVvcId3t+qfVKDVoyEYISe8dGI26DzV5X3oDFFFfooUhp3Phd+iC14y6w5BepdMBMoruc8Qh/eLqhKnbvbBz3pxNtZB2vQ/vDy9Q2R+xsboqEMIyNSIdSxcJtcs5YO7HV76s/RA83acbctN1SnNCwdI4U1GiY3ik=;20:pmx/9K+5Z7nZR5L7ZjHYIk+xl1H4HuiLJzGx1BfeKbGjRuNpScZCGiY9trV2qOARNCfhBTCs8j/IZ361IUa2OCk9ranNptRpE8B83p23r8VkC5DuoB2tiGaDPYGlvMO4Rw7KsjJBY40E6mtNYbwZzzn8LKsuh77itV2PTLpJzTV2CCGCxo3PUcfc5fFm5GYBz3sd64rFiZqfc5dE2YdjBdlcke7UQKakDzo+bt2UmepxAVes90yABoqT5ab0ksEq01+WYLoIAJ/reUZN3uKMNZXJvjI2iW8uhM1LqNkCOlQx0gVg7X2UAAaa42Sd4r136TTxu5hph3lqILRCBdGu3oOTBgWkvE2xEwsdAP985SWPWfs9HukGUkA0z+M0tgVKdhLfTyd5f4zjn4ZxwkVQHH1dEi3l1QfjmYcwCFIyEdI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(6041248)(20161123564025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(6072148);SRVR:AM4PR0802MB2276;BCL:0;PCL:0;RULEID:;SRVR:AM4PR0802MB2276; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0802MB2276;4:HvWJ7XV07Nla0aykzM0hGSxwh3+zWyWkKwv5HoYMThZMxP5YyowKlshuNLHy3rhB1FUqBmLyjyJhkEBTxwX4ZlFBtcoqv7PmNjGJ4C4DhYCuUsOmKSn0Mvw+r9LmDxewGSWRZb0LVA6prrTh2WFWlZ1PQ1gRSFQXu+BJRupNMxzUNiSbPXvCF83kBJqF9g+fYQwC7XKZELVXW4SuZs9vDApjyXOLx9O0W0Pn+H9uFoXlb7S5Mu/2D/5LC2zl4gYEWNFDt89yKzDy/Ut5ioaMjcVdnHqg1P8CI5FbjEqE34aXWOcLlBG2eSjrW/5dx0gYPPEY3xQxJod98/V/AeSnv87XVsMAqUA48pX9ds8W4ir0iLyQ7X71hLlzWLcas09Ft+4DGR25NtAWeHAYk95FqeGo17JASuSVT0QKhUdZPddO6qHS9zylTnDgzpyxpOGsKJDtDYzbih9xqI54A5SD+FasTDCBr7cIXaSjem0qSQnSaXKiys15WD/UDcBLUmIw/WRr3ZONUDnbALz3wfI+AbH4g7tA8LCun8g6B2yvCHkArOX2XD0KmEmBzrg+/MAD0d2SpHyuZRlW0KXRMTje12HedxRqc21xO2Du9hf9J047NB8jHCItk2BUhmKVr/kn+B4bH07wo2OBy54sA9hrHrAUphBI1GVwDokSdhfStgGg3va5iRQK8zBsmFbHhqcK3yA8RVTzlXdp5MremSY3NQ== X-Forefront-PRVS: 02801ACE41 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6069001)(39450400003)(39400400002)(39830400002)(6666003)(50466002)(189998001)(9686003)(7736002)(230700001)(53936002)(86362001)(83506001)(2201001)(6506006)(38730400002)(7416002)(2950100002)(305945005)(76176999)(4001350100001)(66066001)(50986999)(8676002)(6116002)(2906002)(42186005)(54356999)(103116003)(5660300001)(23676002)(81166006)(3846002)(33646002)(47776003)(25786009)(61506002)(921003)(1121003);DIR:OUT;SFP:1102;SCL:1;SRVR:AM4PR0802MB2276;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA4MDJNQjIyNzY7MjM6K20xamhKOGd2VVJjNzJXcFJsV1F2eGda?= =?utf-8?B?OXdpN1d3MXVzdkFNYklEV2h0UkdPdy96cmpaZlZMNVY0b1hXQTJURmxvY3g3?= =?utf-8?B?MmtsZXBQYm1tY2tGbHdRM1R5TUx0bU52bTgzUVFrOGFBYTYyR1dUV2MyUzcz?= =?utf-8?B?bXpQQUdQVksxVDFIaXFaaUpxa3NZZVNSUGpqdjc2YUhZTVdEV3NOQjByT1ln?= =?utf-8?B?Y3FVMEVRM3ROaWQzbW5EK3ZXMmRYaU5MWCt4S0lOMkpsODJxMFZudjVZR3N6?= =?utf-8?B?eXlZb0I3OU9sYS90VzFTcW5HSCszbUwyeEJ3MDdqZStrVTd0STErQituWW5I?= =?utf-8?B?cnF3b1ZZRFp2VUErTjN0Uld5Rjd3akYxdnJSNzhVNmhFc1pqYWRZWjhrK3Zh?= =?utf-8?B?WnRTL01RNGJ0U3lCTGVCSGlGVGhmVnUrNGZwbVZ0YXpGcTdJK204ZEZMOU9O?= =?utf-8?B?TWxFVUY5L0VMckdqSEN2a2I5YkhVcU1jTmVMVDluVFNnZnNBU0pWS0Zvei9L?= =?utf-8?B?bVZFOG50di9oRUVvamkySFpIUC9qQWJRM29PTnQ5RmI4cVpkT1MyWC9SSGl1?= =?utf-8?B?K1JGLzQ2TlhkQWhUOFNaZklMTXNHb2tubnNSMEFyRG5VWGVlamg4Ym9rc3ZJ?= =?utf-8?B?UVgrWm81cjBzWkphTHdXbHE1cHI5Z2ZBTWpaK3V3cWFJamVveXBGbFgvUGRa?= =?utf-8?B?TDRQbzFiNlRWamoybWpIRENLNXhPS1ZQaE1mSUF1NitJd1hnbjNBaVdjeHFI?= =?utf-8?B?dHhBdHdBZjJ6bS9BUUk0WmpCYS95OVdFWFFPNm9YRzVKME40M0FQaU1PU3ZI?= =?utf-8?B?S0Y3RHJnWk15SS8vSkdnUlRERmN3eWx5akplRElmeFRnckZIOFE2R0VNaklX?= =?utf-8?B?VDk0cFk2NzVYTVZXWUx5ZUprUXk0MjdGVEVHTHpKSFhaeDFDWTZZK3B5RTFw?= =?utf-8?B?N29XYVFGYlVaT2pLTTZuanV0NGZKeHhZVUJZZ0liVW5sMThFbThaUWlieVJu?= =?utf-8?B?YkJzaVJ2a2RYWXNpaEFEU2t3bTI5NS9NaXNYYXh4ZTlPV1dyRit6VlFRbWJD?= =?utf-8?B?VnUxcVJhd3c3S3BVSnE1Q3JqcVMxQ0ZDUk9MWkJ6WnBEaU92RC9tOG90QjFE?= =?utf-8?B?RGVOMWpBWUhLbW1UYXB0aG5VVHdrZjNFaEJlMEN2cDFqV3YwYVFmc3dXTXNS?= =?utf-8?B?c3V2WW85VTRad2FuYW5tYmNFZUtmN3RYaGpnMDVLZDN1b1J5QkxNUzZzaVh2?= =?utf-8?B?d3JlZlRsWDVIUVlJVXl2eld1MmFCYkNVbytKTWIycEprRnVQUW1DNkdxZzJC?= =?utf-8?B?UGtHSUhFUVpFSkNoUllTRFJsMHdwNmFHVEpwczByOGVXYU1temNhZHBHaDdy?= =?utf-8?B?U0Qrc21VR2VEUXJmMXlvTGZESGdOQXdKRHB0TG1CT2c9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0802MB2276;6:I+2rcpSf4elYIQ0c2L5dsEIyxEUcsBPRWi9dT+X0mMOlVBN8Y/Ely36T9K+N4qRTlP/CW2fpp0NnhahJ47LRQns2NYsiPYugYgXGResFiLg7ulGZggADIuH/w97bQOvvZBbIdd5CwcetdRMO49xqQbOJEq2Tu5kqPvpU2TnZ7xQzVzMof5HwP4cv3h9gQKR6yCfq7nRCeZx3+Gafd1fog3vuejZitWeODoM41rt2qMniX0Nmct6VNAC4U+Bn4NXfFNE0A4QPaonEKDA9F5FQmngqtCKlWPiPezpKWJEtdMm0qtLiHXsEIJZ59Wsxhv6mT6U6J+6CKoAGViiNYe+CEZUZQp8o4btkzunwUeUWJyRfTaJX6jPw/rCXS9ewV9uexxLK6gzN5vqkPNPN8Fd3/OMbwCPLRrmgXyOv07Jfm13bOHMRLYUodHDkJGnTNLALjtQN2bZFYXp+obJH1XMv6g==;5:ILHhtF0AN1jfJ9KWMlbcwkLbv+WomYgxbKj+oE9ByNHHa/UPjJG/G/YlHGXLZxZdLdzsooQh2MMPzbTqkjAdD5ugYJ5lohebMP3QP2Gab9RY9+iVAjvo0ex7l/d2cQ/lrAi75g15pvPxqLK4Asz1kw==;24:NLmWwbfSA2mC/Fhel6Y4uRojc8SIbU6UtkaGJ5B9IMFBqeU30e5jWHSDQ2si8f74pG8ipfyigqpNE1jeShUJjEfLMR7Sv8HM+FXA91fbBd0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR0802MB2276;7:tfFIP1s+XCEkr2f9xzUXCk0SPI66Nw+fLmgO6oeQBBjEGWq2IxnFuXYKn+e788LcHZ3yZxHV4+qG5vcIhIFURwU/gZkjEptuQVyh0Oi54eDHL4bjLZeC28qA0UjoYuGFtyaweTeJKqJSTuuYXuNBvKjnA9Y3L/Xb0t5i93Ii45E9Pxg+wFuji9v3gevIucmfOK0py1LB420EKqoaxXd0d7UAV1SxY6MKSUSzk48XxtGDwV1UCnyQC51NH292yQ6HEc5ktrI44MId+nEuOp1IXfi3WI13EX4M2O+jQItR/I8DLcOWJMm/hQWtIAtsCd6dlssF4BhLMgxEOpngoC6LCQ==;20:ELKtVK66xHwbDnxuYGat72Yi9CjrcM+T2TfdObFf5d3p7SFznBp4tNhHa/EK3gvN+97pbWflAdvozYD/+jV7PlIV0XNXCvuZrxSzHTrvIH90p50eBgeFFXSmZ5kBLs8u1/nc6GJ52hQKMwLT2+r9DU3aEm/1RdJYCF8fODQ55hQ= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2017 17:36:05.8152 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2276 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some namespaces types want have their own ioctls. For, example, pid namespace needs a ioctl, allowing to set vector of ns_last_pid on namespaces hierarchy. This patch introduces proc_ns_operations::ns_ioctl() to allow namespaces determine specific ioctls. Signed-off-by: Kirill Tkhai --- fs/nsfs.c | 4 ++++ include/linux/proc_ns.h | 1 + include/uapi/linux/nsfs.h | 2 ++ 3 files changed, 7 insertions(+) diff --git a/fs/nsfs.c b/fs/nsfs.c index 1656843e87d2..fed7e5c59e9c 100644 --- a/fs/nsfs.c +++ b/fs/nsfs.c @@ -185,6 +185,10 @@ static long ns_ioctl(struct file *filp, unsigned int ioctl, argp = (uid_t __user *) arg; uid = from_kuid_munged(current_user_ns(), user_ns->owner); return put_user(uid, argp); + case NS_SPECIFIC_IOC: + if (!ns->ops->ns_ioctl) + return -ENOTTY; + return ns->ops->ns_ioctl(ns, arg); default: return -ENOTTY; } diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h index 12cb8bd81d2d..c645a2174933 100644 --- a/include/linux/proc_ns.h +++ b/include/linux/proc_ns.h @@ -20,6 +20,7 @@ struct proc_ns_operations { int (*install)(struct nsproxy *nsproxy, struct ns_common *ns); struct user_namespace *(*owner)(struct ns_common *ns); struct ns_common *(*get_parent)(struct ns_common *ns); + long (*ns_ioctl)(struct ns_common *ns, unsigned long arg); }; extern const struct proc_ns_operations netns_operations; diff --git a/include/uapi/linux/nsfs.h b/include/uapi/linux/nsfs.h index 1a3ca79f466b..544bbb661475 100644 --- a/include/uapi/linux/nsfs.h +++ b/include/uapi/linux/nsfs.h @@ -14,5 +14,7 @@ #define NS_GET_NSTYPE _IO(NSIO, 0x3) /* Get owner UID (in the caller's user namespace) for a user namespace */ #define NS_GET_OWNER_UID _IO(NSIO, 0x4) +/* Execute namespace-specific ioctl */ +#define NS_SPECIFIC_IOC _IO(NSIO, 0x5) #endif /* __LINUX_NSFS_H */