From 8b6fc34939935ffc666f48d6679fcea503b77cad Mon Sep 17 00:00:00 2001 From: GangCao Date: Wed, 10 Aug 2022 04:35:49 -0400 Subject: [PATCH] NVMe Bdev: add explicit warning on not permitted operation Below command is failed without intuitive warning on why the operation is not permitted: request: { "action_on_timeout": "abort", "delay_cmd_submit": true, "disable_auto_failback": false, "method": "bdev_nvme_set_options", "req_id": 1 } Got JSON-RPC error response response: { "code": -1, "message": "RPC not permitted with nvme controllers already attached" } Change-Id: Ic35292885aa4b507fe8bb278a4b41363cfbae9a5 Signed-off-by: GangCao Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13950 Reviewed-by: Aleksey Marchuk Reviewed-by: Dong Yi Reviewed-by: Tomasz Zawadzki Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot --- module/bdev/nvme/bdev_nvme_rpc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/module/bdev/nvme/bdev_nvme_rpc.c b/module/bdev/nvme/bdev_nvme_rpc.c index 47176d767..be7193999 100644 --- a/module/bdev/nvme/bdev_nvme_rpc.c +++ b/module/bdev/nvme/bdev_nvme_rpc.c @@ -88,13 +88,15 @@ rpc_bdev_nvme_set_options(struct spdk_jsonrpc_request *request, } rc = bdev_nvme_set_opts(&opts); - if (rc) { + if (rc == -EPERM) { + spdk_jsonrpc_send_error_response(request, -EPERM, + "RPC not permitted with nvme controllers already attached"); + } else if (rc) { spdk_jsonrpc_send_error_response(request, rc, spdk_strerror(-rc)); - return; + } else { + spdk_jsonrpc_send_bool_response(request, true); } - spdk_jsonrpc_send_bool_response(request, true); - return; } SPDK_RPC_REGISTER("bdev_nvme_set_options", rpc_bdev_nvme_set_options,