Skip to content

Commit 6187b19

Browse files
authored
On the first vdev open ignore impossible ashift hints
If on the first open device's logical ashift is bigger than set by pool's ashift property, ignore the last as unusable instead of creating vdev that will fail most of I/Os due to misalignment. Reviewed-by: Rob Norris <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ameer Hamza <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Closes #16690
1 parent 2bf1520 commit 6187b19

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

module/zfs/vdev.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2205,10 +2205,11 @@ vdev_open(vdev_t *vd)
22052205
vd->vdev_max_asize = max_asize;
22062206

22072207
/*
2208-
* If the vdev_ashift was not overridden at creation time,
2208+
* If the vdev_ashift was not overridden at creation time
2209+
* (0) or the override value is impossible for the device,
22092210
* then set it the logical ashift and optimize the ashift.
22102211
*/
2211-
if (vd->vdev_ashift == 0) {
2212+
if (vd->vdev_ashift < vd->vdev_logical_ashift) {
22122213
vd->vdev_ashift = vd->vdev_logical_ashift;
22132214

22142215
if (vd->vdev_logical_ashift > ASHIFT_MAX) {

0 commit comments

Comments
 (0)