X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fvdev.c;fp=module%2Fzfs%2Fvdev.c;h=e0d82e6737c4fed91e321d0d097dd6a384a9576f;hb=32a9872bbae90a7cd9793c371f558701ec268976;hp=7d6d5278a0db8efd15c8262f57618477b464289e;hpb=3997bc74351d608e1a09f8ba8d58fb1c12fff331;p=zfs.git diff --git a/module/zfs/vdev.c b/module/zfs/vdev.c index 7d6d527..e0d82e6 100644 --- a/module/zfs/vdev.c +++ b/module/zfs/vdev.c @@ -1271,13 +1271,16 @@ vdev_open(vdev_t *vd) vd->vdev_ashift = MAX(ashift, vd->vdev_ashift); } else { /* - * Make sure the alignment requirement hasn't increased. + * Detect if the alignment requirement has increased. + * We don't want to make the pool unavailable, just + * post an event instead. */ - if (ashift > vd->vdev_top->vdev_ashift) { - vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN, - VDEV_AUX_BAD_LABEL); - return (EINVAL); + if (ashift > vd->vdev_top->vdev_ashift && + vd->vdev_ops->vdev_op_leaf) { + zfs_ereport_post(FM_EREPORT_ZFS_DEVICE_BAD_ASHIFT, + spa, vd, NULL, 0, 0); } + vd->vdev_max_asize = max_asize; }