aec988734b
When creating partition tables we always need to wait until not only the /dev/<disk><part> device appears. But just as importantly if we were originally given a udev path we need to wait for the /dev/disk/*/<name>-part<part> symlink to be created. However, since the partition naming convention differs between /dev/ and /dev/disk we determine based on the path which convention to expect and then wait (for a few seconds) for the device to be created. Based on my experience with udev on my test nodes it takes about 300ms for the devices to be created after being prompted by the kernel. This time will vary somehwat based on how complicated your udev rules are, so for safety I threw in a factor of 10. We wait 3 seconds for the devices to appears before erroring out with a failure. An additional minor fix includes checking the force flag in the EFI_GPT_PRIMARY_CORRUPT case. This allows you to force the update even in the corrupt partition case. Finally, since these are Linux only changes I've dropped the devid code entirely here because I still can't think of why we would need or want it on a Linux system. |
||
---|---|---|
.. | ||
libzfs.h | ||
libzfs_impl.h |