Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934923AbcLOBeD (ORCPT ); Wed, 14 Dec 2016 20:34:03 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:22773 "EHLO esa2.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932234AbcLOBeA (ORCPT ); Wed, 14 Dec 2016 20:34:00 -0500 X-IronPort-AV: E=Sophos;i="5.33,349,1477929600"; d="scan'208";a="43902975" Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Damien.LeMoal@wdc.com; Subject: Re: [RFC] block: check partition alignment To: Christoph Hellwig , Stefan Haberland References: <20161214164706.45543-1-sth@linux.vnet.ibm.com> <20161214170719.GA3599@infradead.org> Cc: axboe@kernel.dk, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, hoeppner@linux.vnet.ibm.com, sebott@linux.vnet.ibm.com From: Damien Le Moal Organization: Western Digital Message-ID: <5824c17b-a7d7-60a1-6bb7-287257aaf67a@wdc.com> Date: Thu, 15 Dec 2016 10:33:47 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20161214170719.GA3599@infradead.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Originating-IP: [199.255.47.8] X-ClientProxiedBy: BLUPR0101CA0012.prod.exchangelabs.com (10.163.116.150) To BY2PR04MB1973.namprd04.prod.outlook.com (10.166.111.13) X-MS-Office365-Filtering-Correlation-Id: f6e72d07-51a3-47e9-3b9c-08d4248a6f43 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BY2PR04MB1973; X-Microsoft-Exchange-Diagnostics: 1;BY2PR04MB1973;3:EGUk15fj/lpEsrKNAQfOK2wFPPkWsSXXRIjvIHInSKN9eD1mnBjIC3zY1KpbdUkiyTHP1ky4ih5N3LfG1bPf0QxKbONDQmuXK/SyGqmTQL3/fiA7ILZea2f9fp3PQfqtX3Ddmil03EWUpK0EXfIe+VodBUa/iIXPXccXcEHrDX9gUIAglE3Ec3MlFqaBsOJ85Uu+phVfOHkBqiDmvLZIez40CHyqkVCR7s1QfxOMhubtAb0Jvfg9UdoEDUuHrnvhtqjqDFl+cmv/Z2Py2o0JZw== X-Microsoft-Exchange-Diagnostics: 1;BY2PR04MB1973;25:+clb5huPOoayOTLufAvH0PuvvNHN5WuBcrQxfo14KUBo1+Txb01NIBzmeJVOpXrrCr28vRG0DwqtHmWuNKjgsVPYbop1nAcpzlhrEUqfW+V4o2BsO2iOr4XCj2wJriH3JvJfOFJTcj3JeP6LZQU9RfQz24jpmKBXjm+ADib2X4dX5VtSQxf/ReejA40GisxT96Cr8HBpFosWWp919ZWdIZ72F/Nt3Y57z9Vybu8vVpKSMugwBrWfq/QM7DlxPiaz/ZBcuNfVwCf4VkDWcQFG6ENzMkyyGr9O0BH1x8BiEwTbtkqM8/Xvfrq31cswMjzsmiCLQ+w9BIBrpIuwFwV44uBmhKCoTC0ppJnu+e1IcOVPqgQLYDDflPSpmhEnt+ao6Xap8yCTIb1DlbDohOMqFi/DndZ4LrUYgNhPJX4dpo6YqvtIVKLp1hyRrTQWwavd8P2za1QrxxckWMNSwwc6dTq+NcmeYSXCqHajc0Ssa9/2LTd6Up6klTK4C89wNrWy7ukAqF6cUDqnFnswQemA+mW0XTslryLhEbuZLrwBV2/9PH36tPYQUpKuBQTtYamMNAUKJwE6Om1TCHyH9bX2evjNXY8SXc+ZLht+h+bfQ/ocJ4V5eZYgHOFrnKPGkLoi1jic/i2naA1BwK2iv6t1Xud6sJKewlCZAbYWuGR6l4Qu92dDS4SDt/ii6rAEMQFW6OIrtJYONjbZyGc7bsuLp8kGe+oGc+00z+KA+lXLnVSXQi3IJHE+5sNN8VoUWW+TE36gFCC2d4p7BQqz9SMwuxb1NLVJnSCXRga6mrIYwj3AQV9I7SVdroC/7IB2inlnY+hBfGEoScySMjMo6w7Sm8cWy1w6dFYrSYrst6ERyZw= X-Microsoft-Exchange-Diagnostics: 1;BY2PR04MB1973;31:EV5haOQjuNKLsNQCPVi8tqvmal29lozc2ufzTRGX570Qi53HooltSl5DDyoBd77nMYzxKOUVd3dZJ4H42q7yR/hmllVaoUaF8VWiCKKKCUieV7JHNMRzIejgk4XAUGQhMQ0GMOl9coalrZJes9/aqUxIO0MhNK0HU+jXRcttaFEjzGF1VRJFnN/mMs6xt9KCfGSSKqBF2v9LeTCPvcfHrit9rUAMKWMqP1ZFEuu1uNWgKGU53L+jz1nl9jurlen4toqG+lBml22JDBZhzViNxw==;20:6aIdr9vSrWp44Z33hjcE4qM+Wa2EBtggiLulnu65Fi0RU6e5CHP703DQB0pm7nmtg9zv6ZzUVhh7My/Liio10gE0oXBpe36yUJvCblIrYWgDLwafvlYbeKpVirn5TE5kJPyaCdl+tVz3CVAUjjPqWu0d2oKe78S+JcRUzzkdUCCrE64BC220FAP/1tc1uW/rHun/9UABc42hITaKc9dH8Pebs69gJOF7vnWuXTRd+hs2hNHV0es2pE0RGhF25WaahosptrrbmteDON8CnWC4PVHgFNIzyW0SH+oYjXj3NLjgcwR3UpGdQNw2TJ/BwzG9QTquoLZuyIihV6WvB9rYDEEonA4Ctett9i/YaEW6eUas0Mdp5zORvOYL1KTiprU1vizI08mIs1MujDN0DKigtPnThnMq2q9iBvY2nc+QY3pAhbo4oTyzbqA4oKpe3zVMpTIOLQh5rNy/cH1YlsSGV+GWpvl18m7yvTrMub8Ql9sgBxvMXuddYxPGSRlp+NHr X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(79135771888625)(67367480688388)(56741022784758); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(6072148);SRVR:BY2PR04MB1973;BCL:0;PCL:0;RULEID:;SRVR:BY2PR04MB1973; X-Microsoft-Exchange-Diagnostics: 1;BY2PR04MB1973;4:HwrOSQSZFGNOM9cxBg7Gx07QqdIPbVuO1S9JFDLrdYJTvp4WFmWhtITrL86ZAz1cWHkFxoKzUrGlakYucaVGciJBBVmn81EZW+9MyP0gcznaBegejxC75o+Vx+p8Pl0MuYIoM69ujqk8Lijx8es1KjrJ6diliRRvYnrLsb/GN6cgeqIuxMhDzCDEKZn4/9jezRqIpPVL+sOSueJ3Lf81NPohT9alvxtRmaK/cGN2fNsc3+eQkb1HZICqsJ8uVqT+w5XdlW/25jdaSgXJrHQRBidZAVbfej+m0LXyDO5EbSj8I8kz57orqx2vQvNjmTuIsyXSZ+us0Trz59Vt+BQPyOqAPncpPqgR1KjlYIlpwzgD681M4FOpyYaKNn/C89RTm/50Q4KoFIHNBWxnjO/NfOOcYa2/nAVMUeaXJlH9g5xJ3S4mpYBBwnfB7Zr/X+t1mTrp2YVRsAKeXC6H9LXXqdL1JJIMo8Ajr8pWYnM/47V/YcwGykEUbb19qyHMMUMQ6xcYF8PpqFHZetPTwHg4GIYkfHiYFmfx/Qas+wbTUm9riEWeUFA9/wLoslF2JTVvNv1+ej0WZTQZeYdfKjGhN9u0bKPkOaXSR4PD7dmHzumtZbYHB4RGMNO7tY9hWd4eqL2EhjQkV9YJd5erlTaCbnNhxyUH3K93e+re8iErHkZ7f1LEJ4zNnv+3SRZ2v7q70SAGLaS8CF8c70xGJbPB0w== X-Forefront-PRVS: 0157DEB61B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(39840400002)(39450400003)(39850400002)(39410400002)(39860400002)(24454002)(199003)(189002)(51444003)(377424004)(83506001)(101416001)(305945005)(4001350100001)(15974865002)(229853002)(33646002)(5001770100001)(97736004)(92566002)(6512006)(105586002)(76176999)(31686004)(42186005)(38730400001)(50986999)(25786008)(106356001)(189998001)(36756003)(6506006)(7736002)(54356999)(6486002)(65806001)(66066001)(65826007)(65956001)(6666003)(81166006)(81156014)(5660300001)(86362001)(3846002)(8676002)(68736007)(2950100002)(230700001)(6116002)(50466002)(47776003)(64126003)(23746002)(31696002)(2906002)(7099028)(18886075002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR04MB1973;H:dimac.fujisawa.hgst.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BY2PR04MB1973;23:SbKdGCg1Xz+qIudcxc5NPrY6+DPZ+GYH5rhJx?= =?Windows-1252?Q?ryoTnYR+tnCOZKC39hdOnF/QG0xbvx/pQkf3xjkwI0QP491cLZxmvXtB?= =?Windows-1252?Q?BG5xnkN8QbWhR/abMaaHJ/tp5zQPr8/zfAMtrvxecPrsbQeIKbQdow2+?= =?Windows-1252?Q?vxB2J9l+6FHfq3XZ8w9pCSfNgSVl8/qb27BerWllkvN8OuGdB7Circ0E?= =?Windows-1252?Q?boHfNUQgn+mUBpI+OqzLnJmZyS820TseyKz/UURTXhz0iZVvjXr+qogS?= =?Windows-1252?Q?j5M4lW4t/2S29VRKDHEsc0yjIGtKp40MWAUqwu5Mh/EP8AjRsN+X8Wiv?= =?Windows-1252?Q?n/XCPALFhRTQdWpr+u4oNyvndSE9j98vULF7MX+04PxMF2DF4DGsyvWb?= =?Windows-1252?Q?7MCm43+3ALKdIbTD0b/1a35qb0ws+1qs0wAH8WH3xkPTq0i8uyxUkUJp?= =?Windows-1252?Q?qjdAyfMAGXa5boNo58XKiO59SC6AL76Ik/haDnNYwn+n3WMe9W6kQVSk?= =?Windows-1252?Q?HpOWJQZE+xTtZBrGJxfTyl10OG2bLN3XEhn9twUI39aSu+6EV59eMzVG?= =?Windows-1252?Q?9Dbaaqlj4GT1PjPO2ZOY7kg7S9odjW+lrzgMThE21aFdCnzNfOsbB5rn?= =?Windows-1252?Q?z9DdQ2eqQ1EBygvhNIDk84uJ4Rei0I2dr2J6djE/EvCOEPVSC2c2ABfW?= =?Windows-1252?Q?XOItIMPijz8XwXPLmDyKC99i8LeZ1ak7Wr6hdiOHu/X6eryDcuvbr6UY?= =?Windows-1252?Q?r2CSjxjo1Odv1g8ouVBSaaY8U1Pcda1R1qgHoPHYhcmDRIB7eaTpaZEe?= =?Windows-1252?Q?WRkF0dru7HV/cTOrcKd2d+8HQkZ0WtCL8XN10XrOJa4JnfF5/l21DvA5?= =?Windows-1252?Q?ZeYXPnSEDAuLl2r7sMTCWN9gP9nlhn0cwfj3RNSwybzwbHoh6+sy42id?= =?Windows-1252?Q?pjvvEwNP4IQDWNMZ7I3oqCYTyma7m7u/NDACnMZW4EyBMcdXZYYOU565?= =?Windows-1252?Q?MgxHrtBbroje6pf4GyVx4qZhHnlgS0Dqe5MVn1IWirLG5pjc7LtPWDvo?= =?Windows-1252?Q?TFkA3RSx0Q5W47PO5RRHwj7m/u3Q9t3EiNrjQYe3yoaOF6jBUJEyVJHv?= =?Windows-1252?Q?KpdEUYHTQso8LaSKjexjadipnz0y1k89vICmrhkmjAmQJT8N6WuJUBEg?= =?Windows-1252?Q?3ZQZjWvtKSRiPNmm3ZQ8bvw3buXjBcHK/8C/UUbsl7RnOIJ6PWmgmJ6L?= =?Windows-1252?Q?Cl79FL9LtaNYHgtc3Fqv4ecyVJnYmT+3wHvGnlFpC5bGwH4o9gAq/dFE?= =?Windows-1252?Q?zzxcYaAQynQ++LCSDnrR+4tpSAHGzCPzqXxBC4+NJQBFFkROv6bXCfrH?= =?Windows-1252?Q?oeSYNDazER0SRivrU6vPQqQIaM6G9qjKz5mOOlRR2pFbYCFZaOTiU8PT?= =?Windows-1252?Q?oJEnRXICWGir6qsqZY/MXe+bzj4LiWtYME9XOhPLIo5GhQw/qSpfihmO?= =?Windows-1252?Q?s/NPztPmxIm5tOPRmqkT7Dpmy+JfnKNA2PFQiUStHnLDcq/vPc680aOh?= =?Windows-1252?Q?thrifp7E6AWRY8gDASqODlMt7G9cQVovkGeeKFbaBRoqnH40f3k8ZH+5?= =?Windows-1252?B?QT09?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR04MB1973;6:PUqmZTXb+VLjaxGS/TTdVXBVd6x85J3X2gVt2IZWuqztpMMUACTTe2Kz9hEsRw79+vkwOEUgC58SwVrQHEpy88ido+6Nr6Ccm1KK59c3o4qYnUYNLDqw2sJqRI5TaklvTE/jQSKrq8LZOFLRLN8FtHHUX7OIkbQO8Fn3PU83sAnTsQg8Mz+5v5+N5GHIpmQbrad2b6fUCrmV6x7J+UYE/t4yazsEVbOMkfNK5fna7tkkGiCnHYfy6LREAhhRvgDkZ/Lc/x8GAmAKnf3o/R6zM2Cuk7YqTDnAEPDln8a0QysHIVFRI6ptNYQUVdo2j/q3hG1NBl7l2UfEyp/C+JgCJd2zVq9tun6GkOgZegb/BrhuPDAOSGCjvM321pJ8TlVDaLa4Iv1+1jrZJXqYKr/p7hJQFB31me5iWmpCPVoy/mikXX63ub41IJ4qDryM9M8fsMO81IQ93znoxb+KzuXgmw==;5:AE6J8MkGu9wzuXSsJZzaJPlovnLTSXHhM2D+sH69Yf72UqtdHYDT3Z2wy732aSKfd1xz8DFega20kHHiwfScELTekxXA0kxtqBKSiQBNo0mNTHrB/1tlM7xsWLX+8k9F6RvMfqE0PWdWSu+LQqS0uNs0qqAXbIXJC3Dtfe6C4sY=;24:SrFZXAAB2SQJ6a/PpM99dcTmy94YEka9LNOqk7wm+LN68R8pD/I+1v5Vh1qiSr4J5u5Yi7bPZKvchO0w6ElBeBXSBIkuXHSCshdwueDLuAM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY2PR04MB1973;7:RK2Sr7k1vXgRdvfflWwh0Bx7BKLP1Cwo5HyFg+dDLodaWHl8zjxrxFeyEuQ8olnhDL3air2rzYagG897aQhUxVy9X1X+4+CJQynjO9sV1IyvYz7xcbCRT5Y7SCrlAZ3nCfLWTNkqgH9FD79SPZCxANt4p57IAjlPESA6zcvJGi46QSCNDbSjM4iaBaeI9so/6Sq5ZXXtiWwthHtJ8sLC37Zb8q9bCKuJ6TJOnMtrtXuSjhszbfw7RdVuz+QggtukKZyZvrRK3ZOswN4saQ6ZJgViD845VyciAJEXHytpojhGRsIRlMvmk5eQKTWCZSgiFq85B4oft+DOx6YGsBolgyZBuPZGjKS7z8ZFE5KYE7uMPRIcczpYbL0XB4bBo9xQiXjohIcryK9GyTkRA1rRR+EsW86k/DQXofROOxEco/Ub19H8F63q/sTiotwppJrr2Icy+njTuyCrJmljOWfnag==;20:qn3DFtZehh/aIF/1lA/08MN52IUzfZdEBKV5JbAfSbkHhW/UAF6tzjrSV7Uycwod6ovTNql7TDasrBIAgXfN/sTOqOz5edbHckAKY43K4jmvb/b0DndbiLAuOd0M8O+FlP1kfm/B7i7Y48NLknAkn4+/3lWPltZEGVSmzBhT/1uxLJg0NVTG/xG6HKKkHrue55011Wzx1fRQFWBbn86DFy+OLnCdvbDMUnlDVM5Aj0h4ll90JEEGX26XlXP3glLP X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2016 01:33:53.4908 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR04MB1973 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1734 Lines: 52 Christoph, On 12/15/16 02:07, Christoph Hellwig wrote: >> To prevent partitions that are not aligned to the physical blocksize >> of a device check for the alignment in the blkpg_ioctl. > > We'd also need to reject this when reading partitions from disk, right? Only for DASD devices, no ? Logical block size aligned partitions are fine for regular block devices. Not aligning on the physical block size is indeed very stupid, but will not generate errors and an application can see that through bdev_alignment_offset() and the sysfs alignment_offset file of the partition. > >> + /* check if partition is aligned to blocksize */ >> + if (p.start % bdev_physical_block_size(bdev) != 0) > > And this should be bdev_logical_block_size, as the logical block size > is the only thing that matters for the OS - exposing the physical block > size is just an optional hint to prevent users from doing stupid > things (like creating unaligned partitions :)) For a regular block device, I agree. But in Stephan case, I think that the check really needs to be against the physical block size, with the added condition that the bdev is a DASD device (similarly to the zone alignment check for zoned block devices). So this should become something like: if (p.start & (bdev_logical_block_size(bdev) - 1)) return -EINVAL; if (bdev_is_dasd(bdev) && p.start & (bdev_physical_block_size(bdev) - 1)) return -EINVAL; I am not sure however how bdev_is_dasd can be implemented though. Best regards. -- Damien Le Moal, Ph.D. Sr. Manager, System Software Research Group, Western Digital Corporation Damien.LeMoal@wdc.com (+81) 0466-98-3593 (ext. 513593) 1 kirihara-cho, Fujisawa, Kanagawa, 252-0888 Japan www.wdc.com, www.hgst.com