freebsd-dev/sys/geom
Ryan Libby 9167705c8c 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 Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
cache Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
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 geom_gate: enable resize 2018-07-13 07:08:06 +00:00
journal Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
label Support device-independent labels for geom_flashmap slices. 2019-03-24 19:11:45 +00:00
linux_lvm Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
mirror g_mirror_taste: avoid deadlock, always clear tasting flag 2019-07-01 22:06:36 +00:00
mountver Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
multipath Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
nop When using the destroy option to shut down a nop GEOM module, I/O 2019-05-25 00:07:49 +00:00
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 sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
shsec Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
stripe Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
uzip Modularize xz. 2019-02-26 19:55:03 +00:00
vinum Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
virstor Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
zero Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_bsd_enc.c sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_bsd.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_ccd.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_ctl.c Define a constant for the maximum number of GEOM_CTL arguments. 2019-02-20 17:07:08 +00:00
geom_ctl.h Define a constant for the maximum number of GEOM_CTL arguments. 2019-02-20 17:07:08 +00:00
geom_dev.c List-ify kernel dump device configuration 2019-05-06 18:24:07 +00:00
geom_disk.c Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
geom_disk.h Extend stripeoffset and stripesize of GEOMs from u_int to off_t 2018-10-27 16:14:42 +00:00
geom_dump.c Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
geom_event.c Instrument "boot holds" for the benefit of the TSLOG framework. These 2017-12-31 09:23:52 +00:00
geom_flashmap.c Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
geom_flashmap.h Support device-independent labels for geom_flashmap slices. 2019-03-24 19:11:45 +00:00
geom_fox.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_int.h Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
geom_io.c stack(9): Drop unused API mode and comment that referenced it 2019-03-15 22:39:55 +00:00
geom_kern.c Optimize kern.geom.conf* sysctls. 2019-06-18 21:05:10 +00:00
geom_map.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_mbr_enc.c sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_mbr.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_redboot.c Extend stripeoffset and stripesize of GEOMs from u_int to off_t 2018-10-27 16:14:42 +00:00
geom_slice.c sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_slice.h sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_subr.c Extend stripeoffset and stripesize of GEOMs from u_int to off_t 2018-10-27 16:14:42 +00:00
geom_sunlabel_enc.c sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_sunlabel.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_vfs.c sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_vfs.h sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_vol_ffs.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom.h geom: fix initialization order 2019-05-06 09:48:34 +00:00
notes