From a4b0a2b6fdbbdb5408a1530a5130a607c802198a Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Tue, 9 Jul 2019 13:45:22 +0200 Subject: [PATCH] bdev/crypto: add more descriptive rpc error messages Improve error messages where possible Change-Id: I2c75cea66dbd635d89e7f27aef59a38c5533b349 Signed-off-by: Karol Latecki Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/460966 Tested-by: SPDK CI Jenkins Reviewed-by: Paul Luse Reviewed-by: Darek Stojaczyk Reviewed-by: Changpeng Liu Reviewed-by: Vitaliy Mysak --- lib/bdev/crypto/vbdev_crypto_rpc.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/bdev/crypto/vbdev_crypto_rpc.c b/lib/bdev/crypto/vbdev_crypto_rpc.c index 63df19c81..1f09f0e7b 100644 --- a/lib/bdev/crypto/vbdev_crypto_rpc.c +++ b/lib/bdev/crypto/vbdev_crypto_rpc.c @@ -74,13 +74,16 @@ spdk_rpc_construct_crypto_bdev(struct spdk_jsonrpc_request *request, SPDK_COUNTOF(rpc_construct_crypto_decoders), &req)) { SPDK_DEBUGLOG(SPDK_LOG_CRYPTO, "spdk_json_decode_object failed\n"); - goto invalid; + spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, + "spdk_json_decode_object failed"); + goto cleanup; } rc = create_crypto_disk(req.base_bdev_name, req.name, req.crypto_pmd, req.key); - if (rc != 0) { - goto invalid; + if (rc) { + spdk_jsonrpc_send_error_response(request, rc, spdk_strerror(-rc)); + goto cleanup; } w = spdk_jsonrpc_begin_result(request); @@ -94,9 +97,8 @@ spdk_rpc_construct_crypto_bdev(struct spdk_jsonrpc_request *request, free_rpc_construct_crypto(&req); return; -invalid: +cleanup: free_rpc_construct_crypto(&req); - spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, "Invalid parameters"); } SPDK_RPC_REGISTER("construct_crypto_bdev", spdk_rpc_construct_crypto_bdev, SPDK_RPC_RUNTIME) @@ -135,19 +137,19 @@ spdk_rpc_delete_crypto_bdev(struct spdk_jsonrpc_request *request, { struct rpc_delete_crypto req = {NULL}; struct spdk_bdev *bdev; - int rc; if (spdk_json_decode_object(params, rpc_delete_crypto_decoders, SPDK_COUNTOF(rpc_delete_crypto_decoders), &req)) { - rc = -EINVAL; - goto invalid; + spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, + "spdk_json_decode_object failed"); + goto cleanup; } bdev = spdk_bdev_get_by_name(req.name); if (bdev == NULL) { - rc = -ENODEV; - goto invalid; + spdk_jsonrpc_send_error_response(request, -ENODEV, spdk_strerror(ENODEV)); + goto cleanup; } delete_crypto_disk(bdev, _spdk_rpc_delete_crypto_bdev_cb, request); @@ -156,8 +158,7 @@ spdk_rpc_delete_crypto_bdev(struct spdk_jsonrpc_request *request, return; -invalid: +cleanup: free_rpc_delete_crypto(&req); - spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_strerror(-rc)); } SPDK_RPC_REGISTER("delete_crypto_bdev", spdk_rpc_delete_crypto_bdev, SPDK_RPC_RUNTIME)