freebsd-skq/sys/geom
Alexander Motin 5ccbeea1c5 Remove some branching from GEOM_DISK hot path.
pp->private just can not be NULL in those places.

In g_disk_start() and g_disk_ioctl() both dp != NULL and !dp->d_destroyed
should always be true if disk_gone() and disk_destroy() are used properly,
since GEOM does not send requests to errored providers.  If the protocol is
not followed, then no amount of additional checks here give real safety.

In g_disk_access() though the checks are useful, since GEOM blocks only
new opens for errored providers, but allows closes.  It should not happen
if disk_gone() and disk_destroy() are used properly, but may otherwise.

To improve cases when disk_gone() is not used, call it from disk_destroy().
It does not give full guaranties, but it errors the provider and makes
GEOM block unwanted requests at least after some race.

MFC after:	2 weeks
2019-12-06 16:48:36 +00:00
..
bde Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
cache GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
concat GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
eli GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
gate GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
journal GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
label GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
linux_lvm GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
mirror Remove duplicate g_debugflags declaration. 2019-12-05 15:07:32 +00:00
mountver GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
multipath gmultipath: add ATF tests 2019-12-06 00:12:14 +00:00
nop Make all the gnop parameters optional in the request from userland, 2019-10-16 21:49:44 +00:00
part Remove duplicate g_debugflags declaration. 2019-12-05 15:07:32 +00:00
raid GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
raid3 GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
sched GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
shsec GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
stripe GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
uzip geom_uzip(4), mkuzip(8): Add Zstd image mode 2019-08-13 23:32:56 +00:00
vinum GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
virstor GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +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_ccd.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
geom_ctl.c We don't even need Giant here. It isn't protecting anything internal 2019-11-23 23:44:00 +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_dbg.h GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
geom_dev.c Block ioctls for dying GEOM_DEV instances. 2019-12-06 03:46:38 +00:00
geom_disk.c Remove some branching from GEOM_DISK hot path. 2019-12-06 16:48:36 +00:00
geom_disk.h Add GEOM attribute to report physical device name, and report it 2019-11-09 17:30:19 +00:00
geom_dump.c Wrap g_trace() into a macro to avoid unneeded calls. 2019-12-05 04:52:19 +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_int.h Remove duplicate g_debugflags declaration. 2019-12-05 15:07:32 +00:00
geom_io.c Mark some more hot global variables with __read_mostly. 2019-12-04 21:26:03 +00:00
geom_kern.c Mark some more hot global variables with __read_mostly. 2019-12-04 21:26:03 +00:00
geom_map.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 gmultipath: add ATF tests 2019-12-06 00:12:14 +00:00
geom_vfs.c GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
geom_vfs.h sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom.h Remove duplicate g_debugflags declaration. 2019-12-05 15:07:32 +00:00
notes