opnsense-src/sys/geom
Andriy Gapon cb702452ad g_mirror: don't fail reads while losing next-to-last disk
I observed a situation where some read requests failed when a 2-way geom
mirror lost one disk.  The problem appears to be in the logic that skips
retrying a failed request when a mirror has only one active disk.
Generally, that makes sense.  But during a transition from two disks to
one it is possible that the request failed on the failing disk before it
was inactivated and, so, the remaining active disk is the disk that
should be tried.

This change adds an additional check to ensure that it was the (only)
active disk that was already tried.

(cherry picked from commit 5d5f44623e)
2022-02-17 08:46:14 +02:00
..
bde gbde: replace malloc_last_fail with a kludge 2020-11-12 20:20:57 +00:00
cache GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
concat GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
eli eli: Zero pad bytes that arise when certain auth algorithms are used 2021-07-29 08:12:22 -04:00
gate Various fixes for ggatec and ggated 2022-02-16 21:07:15 -07:00
journal GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
label glabel: Set G_CF_DIRECT_SEND/RECEIVE for taste consumer. 2022-02-10 19:50:46 -05:00
linux_lvm GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
mirror g_mirror: don't fail reads while losing next-to-last disk 2022-02-17 08:46:14 +02:00
mountver Make g_attach() return ENXIO for orphaned providers; update various 2020-10-18 16:24:08 +00:00
multipath GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
nop Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
part geom: Add HiFive boot partitions 2022-02-09 12:39:50 -05:00
raid graid: Set G_CF_DIRECT_SEND for task consumer. 2022-02-10 19:50:45 -05:00
raid3 GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
shsec GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
stripe GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
uzip Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vinum GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
virstor GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-02-10 19:50:46 -05:00
zero geom(4): Mark all sysctls as CTLFLAG_MPSAFE. 2021-08-24 21:53:17 -04:00
geom.h GEOM: Minor polishing in geom_event. 2022-01-10 21:45:30 -05:00
geom_bsd_enc.c sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_ccd.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_ctl.c geom_ctl.c: remove stale header files 2020-10-20 20:59:13 +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 geom: Handle partial I/O in g_{read,write,delete}_data() 2022-02-03 09:34:27 -05:00
geom_disk.c geom_disk: use a preallocated geom_event for disk destruction. 2021-09-12 09:56:14 -06:00
geom_disk.h geom_disk: use a preallocated geom_event for disk destruction. 2021-09-12 09:56:14 -06:00
geom_dump.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_event.c GEOM: Minor polishing in geom_event. 2022-01-10 21:45:30 -05:00
geom_flashmap.c Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
geom_flashmap.h geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_int.h GEOM: Relax direct dispatch for GEOM threads. 2022-02-10 19:50:45 -05:00
geom_io.c In GEOM debugging output, show consumer for cloned and duplicated bio's. 2022-02-15 16:27:55 -08:00
geom_kern.c GEOM: Relax direct dispatch for GEOM threads. 2022-02-10 19:50:45 -05:00
geom_map.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_redboot.c geom_map and geom_redboot: Remove unused ctlreq handler. 2020-07-26 22:30:01 +00:00
geom_slice.c Pass BIO_SPEEDUP through all the geom layers 2020-01-17 01:15:55 +00:00
geom_slice.h sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
geom_subr.c geom(4): make g_newprovider_event() return if G_P_WITHER is set 2020-12-29 14:29:59 +00:00
geom_vfs.c g_vfs_close(): vp is unused 2021-11-19 06:25:29 +02:00
geom_vfs.h sys/geom: adoption of SPDX licensing ID tags. 2017-11-27 15:17:37 +00:00
notes