freebsd-skq/sys/geom
rlibby 9a58963a65 g_mirror_taste: avoid deadlock, always clear tasting flag
If g_mirror_taste encountered an error at g_mirror_add_disk, it might
try to g_mirror_destroy the device with the G_MIRROR_DEVICE_FLAG_TASTING
flag still set.  This would wait on a worker to complete the destruction
with g_mirror_try_destroy, but that function bails out if the tasting
flag is set, resulting in a deadlock.  Clear the tasting flag before
trying to destroy the device.

Test Plan:
sysctl debug.fail_point.mnowait="1%return"
kyua test -k /usr/tests/sys/geom/class/mirror/Kyuafile

Reviewed by:	markj
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D20744
2019-07-01 22:06:36 +00:00
..
bde
cache
concat Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
eli g_eli_create: only dec g_access acw if we inc'd it 2019-07-01 22:06:16 +00:00
gate
journal Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
label
linux_lvm
mirror g_mirror_taste: avoid deadlock, always clear tasting flag 2019-07-01 22:06:36 +00:00
mountver
multipath Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
nop
part Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
raid Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
raid3 Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
sched
shsec
stripe Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
uzip
vinum
virstor
zero
geom_bsd_enc.c
geom_bsd.c
geom_ccd.c
geom_ctl.c
geom_ctl.h
geom_dev.c
geom_disk.c Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
geom_disk.h
geom_dump.c Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
geom_event.c
geom_flashmap.c Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
geom_flashmap.h
geom_fox.c
geom_int.h Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
geom_io.c
geom_kern.c Optimize kern.geom.conf* sysctls. 2019-06-18 21:05:10 +00:00
geom_map.c
geom_mbr_enc.c
geom_mbr.c
geom_redboot.c
geom_slice.c
geom_slice.h
geom_subr.c
geom_sunlabel_enc.c
geom_sunlabel.c
geom_vfs.c
geom_vfs.h
geom_vol_ffs.c
geom.h
notes