Skip /dev/hpet during 'zpool import'
If libblkid does not contain ZFS support, then 'zpool import' will scan all block devices in /dev/ to determine which ones are components of a ZFS filesystem. It does this by opening all the devices and stat'ing them to determine which ones are block devices. If the device turns out not to be a block device it is skipped. Usually, this whole process is pretty harmless (although slow). But there are certain devices in /dev/ which must be handled in a very specific way or your system may crash. For example, if /dev/watchdog is simply opened the watchdog timer will be started and your system will panic when the timer expires. It turns out the /dev/hpet causes similiar problems although only when accessed under a virtual machine. For some reason accessing /dev/hpet causes qemu to crash. To address this issue this commit adds /dev/hpet to the device blacklist, it will be skipped solely based on its name.
This commit is contained in:
parent
e0f3df67e5
commit
5e7affae52
|
@ -1086,7 +1086,8 @@ zpool_find_import_impl(libzfs_handle_t *hdl, importargs_t *iarg)
|
|||
(strncmp(name, "vcs", 3) == 0) ||
|
||||
(strncmp(name, "parport", 7) == 0) ||
|
||||
(strncmp(name, "lp", 2) == 0) ||
|
||||
(strncmp(name, "fd", 2) == 0))
|
||||
(strncmp(name, "fd", 2) == 0) ||
|
||||
(strncmp(name, "hpet", 4) == 0))
|
||||
continue;
|
||||
|
||||
if ((fd = openat64(dfd, name, O_RDONLY)) < 0)
|
||||
|
|
Loading…
Reference in New Issue