freebsd-src/sys/geom
Kirk McKusick 90e29718cf Clarify when GEOM utilities exit with success or failure.
Historically, GEOM utilities (gpart(8), gstripe(8), gmirror(8),
etc) used the gctl_error() routine to report errors. If they called
gctl_error() they would exit with EXIT_FAILURE, otherwise they would
return with EXIT_SUCCESS. If they used gctl_error() to output an
informational message, for example when run with the -v (verbose)
option, they would mistakenly exit with EXIT_FAILURE. A further
limitation of the gctl_error() function was that it could only be
called once. Messages from any additional calls to gctl_error()
would be silently discarded.

To resolve these problems a new function, gctl_msg() has been added.
It can be called multiple times to output multiple messages. It
also has an additional errno argument which should be zero if it is
an informational message or an errno value (EINVAL, EBUSY, etc) if
it is an error. When done the gctl_post_messages() function should
be called to indicate that all messages have been posted. If any
of the messages had a non-zero errno, the utility will EXIT_FAILURE.
If only informational messages (with zero errno) were posted, the
utility will EXIT_SUCCESS.

Tested by:   Peter Holm
PR:          265184
MFC after:   1 week
2022-07-16 10:26:51 -07:00
..
bde geom(4): Fix some of the "set but not used" warnings 2021-12-18 11:42:34 +00:00
cache GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
concat GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
eli geli: Add a chicken switch for unmapped I/O 2022-04-18 17:55:24 -04:00
gate geom_gate: Distinguish between classes of errors 2022-01-29 21:15:51 +11:00
journal GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
label glabel: Set G_CF_DIRECT_SEND/RECEIVE for taste consumer. 2022-01-28 14:22:41 -05:00
linux_lvm GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
mirror GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05: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-01-29 21:59:03 -05:00
nop kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
part gpart(8): Fix two typos in source code comments 2022-03-28 19:36:48 +02:00
raid kerneldump: remove physical from dump routines 2022-05-13 10:43:19 -03:00
raid3 GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
shsec GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
stripe GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
union Clarify when GEOM utilities exit with success or failure. 2022-07-16 10:26:51 -07:00
uzip Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vinum geom_vinum: fix set but not used warnings 2022-04-04 13:23:47 -08:00
virstor geom(4): Fix a common typo in a source code comment 2022-06-05 09:51:10 +02:00
zero geom(4): Mark all sysctls as CTLFLAG_MPSAFE. 2021-08-10 20:18:46 -04:00
geom.h Clarify when GEOM utilities exit with success or failure. 2022-07-16 10:26:51 -07:00
geom_bsd_enc.c
geom_ccd.c sys/geom: Use C99 fixed-width integer types. 2021-12-28 09:41:51 -08:00
geom_ctl.c Clarify when GEOM utilities exit with success or failure. 2022-07-16 10:26:51 -07:00
geom_ctl.h
geom_dbg.h
geom_dev.c ses: don't panic if disk elements have really weird descriptors 2022-06-23 11:19:20 -06:00
geom_disk.c Delay GEOM disk_create() until CAM periph probe completes. 2022-07-14 16:17:36 -04:00
geom_disk.h Delay GEOM disk_create() until CAM periph probe completes. 2022-07-14 16:17:36 -04:00
geom_dump.c GEOM: Introduce partial confxml API 2022-03-12 11:55:52 -05:00
geom_event.c GEOM: Minor polishing in geom_event. 2021-12-27 21:01:08 -05:00
geom_flashmap.c
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: Introduce partial confxml API 2022-03-12 11:55:52 -05:00
geom_io.c In GEOM debugging output, show consumer for cloned and duplicated bio's. 2022-01-30 17:21:13 -08:00
geom_kern.c GEOM: Relax direct dispatch for GEOM threads. 2022-01-28 14:21:21 -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
geom_subr.c GEOM: Remove g_wait_sim. 2022-01-29 22:12:43 -05:00
geom_vfs.c g_vfs_done: Only report ENXIO once 2022-04-24 14:01:33 -06:00
geom_vfs.h
notes