freebsd-skq/sys/geom
Andriy Gapon f0fa2af656 geom_slice: fix r325227, protect against multiple calls to g_slice_free
This geom does not immediately detach its consumer relying on the
wither-washer to do that.  Since that happens asynchronously we may get
additional spoiling events.  So, we need to account for that.

There are multiple options for fixing this issue like detaching
immediately or checking for G_CF_ORPHAN in g_slice_spoiled().
The most reliable and least intrusive fix seems to be setting
geom->softc to NULL on the first call and checking for NULL on
subsequent calls.  This is something that the code did before r325227.

Reported by:	David Wolfskill <david@catwhisker.org>,
		O. Hartmann <o.hartmann@walstatt.org>
Tested by:	David Wolfskill <david@catwhisker.org> (earlier version)
Discussed with:	mav
MFC after:	1 week
X-MFC with:	r325227
2017-11-01 10:53:10 +00:00
..
bde Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
cache
concat Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
eli Fix information leak in geli(8) integrity mode 2017-09-09 01:41:01 +00:00
gate Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
journal When read requests are sent from a filesystem running above g_journal, 2017-08-13 18:09:22 +00:00
label Relax checking if the privider size matches size recorded in the 2016-07-18 05:00:01 +00:00
linux_lvm Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
mirror Fix a lock leak in g_mirror_destroy(). 2017-10-27 17:05:14 +00:00
mountver Add back missing MTX_DEF, it still needs to be there. 2017-10-29 12:03:06 +00:00
multipath Report disk addition errors on add or create subcommand. 2017-01-20 13:49:04 +00:00
nop
part The hard drive media device path contains the size of the partition, 2017-09-02 07:04:06 +00:00
raid g_raid: Prevent tasters from attempting excessively large reads 2017-01-12 06:58:31 +00:00
raid3 Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
sched
shsec Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
stripe Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
uzip Add MD_VERIFY option to enable O_VERIFY in open for vnode type. 2017-05-31 21:18:11 +00:00
vinum Fix logic error in gvinum's gv_set_sd_state() 2017-01-08 17:56:54 +00:00
virstor g_virstor.h: macro parenthesization 2017-06-30 22:01:18 +00:00
zero
geom_aes.c
geom_bsd_enc.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_bsd.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom_ccd.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_ctl.c geom: unsign some types to match their definitions and avoid overflows. 2016-04-27 15:10:40 +00:00
geom_ctl.h
geom_dev.c Add support for compressed kernel dumps. 2017-10-25 00:51:00 +00:00
geom_disk.c Expose API to allow disks to ask for alias names in devfs. 2017-08-07 21:12:38 +00:00
geom_disk.h Display rotation rate and TRIM/UNMAP support in diskinfo(8) 2017-10-04 15:09:49 +00:00
geom_dump.c Add aliasing concept to geom. 2017-08-07 21:12:28 +00:00
geom_event.c Remove asserts that Giant is not held on entrance into geom KPI, which 2016-05-20 08:22:20 +00:00
geom_flashmap.c - Allow different slicers for different flash types to be registered 2017-02-22 10:21:39 +00:00
geom_fox.c Also provide a warning for geom_fox. 2017-08-09 16:37:37 +00:00
geom_int.h
geom_io.c Add BUF_TRACKING and FULL_BUF_TRACKING buffer debugging 2016-10-31 23:09:52 +00:00
geom_kern.c Remove unneeded Giant locking around kthreads creation. 2016-05-20 08:28:11 +00:00
geom_map.c build: Unbreak LINT 2016-12-21 01:39:11 +00:00
geom_mbr_enc.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_mbr.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom_redboot.c [geom_redboot] Extend geom_redboot to handle non-zero fis offset. 2016-10-04 16:35:38 +00:00
geom_slice.c geom_slice: fix r325227, protect against multiple calls to g_slice_free 2017-11-01 10:53:10 +00:00
geom_slice.h
geom_subr.c Clear G_CF_ORPHAN when attaching. This fixes cases where the same 2017-10-02 11:57:00 +00:00
geom_sunlabel_enc.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_sunlabel.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom_vfs.c Fix typo. 2017-05-18 08:25:07 +00:00
geom_vfs.h
geom_vol_ffs.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom.h Add aliasing concept to geom. 2017-08-07 21:12:28 +00:00
notes