HomeFreeBSD

Fix race condition involving ZFS remove events

Description

Fix race condition involving ZFS remove events

When a ZFS drive disappears, ZFS sends a resource.fs.zfs.removed event to
userland. A userland program like zfsd(8) can use that event, for example to
activate a hotspare. The current code contains a race condition: vdev_geom
will sent the sysevent _before_ spa.c would update the vdev's status,
causing userland processes to see pool state that does not reflect the
device removal. This change moves the sysevent to spa.c, closing the race.

Reviewed by: delphij, Sean Eric Fagan
MFC after: 4 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D4902

Details

Provenance
asomersAuthored on
Reviewer
delphij
Differential Revision
D4902: Fix race condition involving ZFS remove events
Parents
rS294026: Fix spelling of IPMI
Branches
Unknown
Tags
Unknown