|
Description
|
Currently, if a device (disk or file) is successfully opened, but
the contents don't match a known value, we mark the vdev as
VDEV_STATE_CANT_OPEN, but we never invoke the 'close' op for the
underlying vdev type. If the rest of the pool is opened
successfully, we end up keeping the underlying device open forever,
or at least until vdev_offline() is called explicitly. This can
lead to some confusion when trying to figure out why a
particular device is busy.
In vdev_set_state(), we should always invoke the close() routine
if we are setting the vdev state to anything that would mark it
dead.
|