Commit b9be940a authored by Lance Hartmann's avatar Lance Hartmann Committed by Jim Harris
Browse files

lib: Return instead of exit in event



Modifies behavior of spdk_app_start() and spdk_app_parse_args()
such that they return on failure instead of terminating with
exit().

Change-Id: I82566417f04e1ae2e3ca60a00c72e664db26c9e4
Signed-off-by: default avatarLance Hartmann <lance.hartmann@oracle.com>
Reviewed-on: https://review.gerrithub.io/401243


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 53d5499e
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -33,6 +33,20 @@ A number of functions have been renamed:

The old names still exist but are deprecated.  They will be removed in the v18.07 release.

### Lib

A set of changes were made in the SPDK's lib code altering,
instances of calls to `exit()` and `abort()` to return a failure instead
wherever reasonably possible.

spdk_app_start() no longer exit()'s on an internal failure, but
instead returns a non-zero error status.

spdk_app_parse_args() no longer exit()'s on help, '-h', or an invalid
option, but instead returns SPDK_APP_PARSE_ARGS_HELP and
SPDK_APP_PARSE_ARGS_FAIL, respectively, and SPDK_APP_PARSE_ARGS_SUCCESS
on success.

## v18.01: Blobstore Thin Provisioning

### Build System
+8 −1
Original line number Diff line number Diff line
@@ -93,7 +93,11 @@ main(int argc, char **argv)
	spdk_app_opts_init(&opts);
	opts.config_file = SPDK_ISCSI_DEFAULT_CONFIG;
	opts.name = "iscsi";
	spdk_app_parse_args(argc, argv, &opts, "b", iscsi_parse_arg, iscsi_usage);
	if ((rc = spdk_app_parse_args(argc, argv, &opts, "b",
				      iscsi_parse_arg, iscsi_usage)) !=
	    SPDK_APP_PARSE_ARGS_SUCCESS) {
		exit(rc);
	}

	if (g_daemon_mode) {
		if (daemon(1, 0) < 0) {
@@ -107,6 +111,9 @@ main(int argc, char **argv)

	/* Blocks until the application is exiting */
	rc = spdk_app_start(&opts, spdk_startup, NULL, NULL);
	if (rc) {
		SPDK_ERRLOG("Start iscsi target daemon:  spdk_app_start() retn non-zero\n");
	}

	spdk_app_fini();

+5 −1
Original line number Diff line number Diff line
@@ -62,7 +62,11 @@ main(int argc, char **argv)
	opts.name = "nvmf";
	opts.config_file = SPDK_NVMF_DEFAULT_CONFIG;
	opts.max_delay_us = 1000; /* 1 ms */
	spdk_app_parse_args(argc, argv, &opts, "", nvmf_parse_arg, nvmf_usage);
	if ((rc = spdk_app_parse_args(argc, argv, &opts, "",
				      nvmf_parse_arg, nvmf_usage)) !=
	    SPDK_APP_PARSE_ARGS_SUCCESS) {
		exit(rc);
	}

	rc = spdk_nvmf_tgt_start(&opts);

+3 −0
Original line number Diff line number Diff line
@@ -335,6 +335,9 @@ spdk_nvmf_tgt_start(struct spdk_app_opts *opts)

	/* Blocks until the application is exiting */
	rc = spdk_app_start(opts, nvmf_tgt_advance_state, NULL, NULL);
	if (rc) {
		SPDK_ERRLOG("spdk_app_start() retn non-zero\n");
	}

	spdk_app_fini();

+5 −1
Original line number Diff line number Diff line
@@ -99,7 +99,11 @@ main(int argc, char *argv[])

	vhost_app_opts_init(&opts);

	spdk_app_parse_args(argc, argv, &opts, "f:S:", vhost_parse_arg, vhost_usage);
	if ((rc = spdk_app_parse_args(argc, argv, &opts, "f:S:",
				      vhost_parse_arg, vhost_usage)) !=
	    SPDK_APP_PARSE_ARGS_SUCCESS) {
		exit(rc);
	}

	if (g_pid_path) {
		save_pid(g_pid_path);
Loading