Update from Github:
Here you can track the process of solving this issue by zfsonlinux itself:
https://github.com/zfsonlinux/zfs/pull/9317
behlendorf commented 5 hours ago
Thanks for verifying the proposed workaround. For those interested, this is caused by an interaction between the scrub, which attempted to reopen the devices, and the compatibility code required for the zfs.ko to set the block device's scheduler. Setting zfs_vdev_scheduler=none prevents the issue by instructing the zfs.ko to never modify the scheduler.
I've opened #9317 which proposes to remove the zfs_vdev_scheduler module option and delegate setting the scheduler as needed entirely to user space. Additional information is provided in the PR and discussion is welcome. This change would apply to the next major release, we should be able to do something less disruptive for the current release.
Here you can track the process of solving this issue by zfsonlinux itself:
https://github.com/zfsonlinux/zfs/pull/9317