mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Fix ZED auto-replace for VDEVs using by-id paths
The change is simple -- restore the original code so that the VDEV
path is updated when using by-id paths. The more challenging part
was to devise a second ZTS test, that would test auto-replace for
'by-id' and help prevent a future regression.
With that new test, we can now do an A|B test with , and without,
the fix to confirm that auto-replace for by-id paths works. The
existing auto-replace test, functional/fault/auto_replace_001_pos,
will confirm that we didn't break auto-replace for 'by-vdev' paths.
In the original functional/fault/auto_replace_001_pos test, the disk
wipe (using dd) was not effective in removing the partitioning since
the kernel was never informed of the wipe.
Added a call to wipefs(8) so that the kernel is informed and ZED will
re-partition the device.
Added a validation step that the re-partitioning occurred by
confirming that the GPT partition UUID changes.
Sponsored-By: OpenDrives Inc.
Sponsored-By: Klara Inc.
Reviewed-by: Rob Norris <rob.norris@klarasystems.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Don Brady <don.brady@klarasystems.com>
Closes #15363
This commit is contained in:
@@ -582,9 +582,8 @@ zfs_device_get_physical(struct udev_device *dev, char *bufptr, size_t buflen)
|
||||
* Wait up to timeout_ms for udev to set up the device node. The device is
|
||||
* considered ready when libudev determines it has been initialized, all of
|
||||
* the device links have been verified to exist, and it has been allowed to
|
||||
* settle. At this point the device the device can be accessed reliably.
|
||||
* Depending on the complexity of the udev rules this process could take
|
||||
* several seconds.
|
||||
* settle. At this point the device can be accessed reliably. Depending on
|
||||
* the complexity of the udev rules this process could take several seconds.
|
||||
*/
|
||||
int
|
||||
zpool_label_disk_wait(const char *path, int timeout_ms)
|
||||
|
||||
Reference in New Issue
Block a user