mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-26 20:22:14 +03:00
Various ZED fixes
* Teach ZED to handle spares usingi the configured ashift: if the zpool 'ashift' property is set then ZED should use its value when kicking in a hotspare; with this change 512e disks can be used as spares for VDEVs that were created with ashift=9, even if ZFS natively detects them as 4K block devices. * Introduce an additional auto_spare test case which verifies that in the face of multiple device failures an appropiate number of spares are kicked in. * Fix zed_stop() in "libtest.shlib" which did not correctly wait the target pid. * Fix ZED crashing on startup caused by a race condition in libzfs when used in multi-threaded context. * Convert ZED over to using the tpool library which is already present in the Illumos FMA code. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: loli10K <ezomori.nozomu@gmail.com> Closes #2562 Closes #6858
This commit is contained in:
@@ -3158,13 +3158,25 @@ function zed_stop
|
||||
if [[ -f ${ZEDLET_DIR}/zed.pid ]]; then
|
||||
zedpid=$(cat ${ZEDLET_DIR}/zed.pid)
|
||||
kill $zedpid
|
||||
wait $zedpid
|
||||
while ps -p $zedpid > /dev/null; do
|
||||
sleep 1
|
||||
done
|
||||
rm -f ${ZEDLET_DIR}/zed.pid
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# Drain all zevents
|
||||
#
|
||||
function zed_events_drain
|
||||
{
|
||||
while [ $(zpool events -H | wc -l) -ne 0 ]; do
|
||||
sleep 1
|
||||
zpool events -c >/dev/null
|
||||
done
|
||||
}
|
||||
|
||||
#
|
||||
# Check is provided device is being active used as a swap device.
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user