From 5eb33f0a5fe1f9db91a863dc85dce64676c36374 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Tue, 5 Jun 2018 12:31:50 -0700 Subject: [PATCH] nbd: return path to /dev/nbd* in start_nbd_disk This will allow us to make the start_nbd_disk method choose an available /dev/nbd* node automatically in an upcoming commit. Change-Id: I3c6eb67e7e0c513212eba17139fd0cc96bf9b6dd Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/413847 Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- CHANGELOG.md | 5 +++++ lib/nbd/nbd_rpc.c | 6 +++--- scripts/rpc.py | 6 +++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9e0d6c71..63f05b5b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## v18.07: (Upcoming Release) +### RPC + +The `start_nbd_disk` RPC method now returns the path to the kernel NBD device node +rather than always returning `true`. + ### Bdev The spdk_bdev_get_io_stat() function now returns cumulative totals instead of resetting diff --git a/lib/nbd/nbd_rpc.c b/lib/nbd/nbd_rpc.c index ab2953638..bec64a131 100644 --- a/lib/nbd/nbd_rpc.c +++ b/lib/nbd/nbd_rpc.c @@ -88,15 +88,15 @@ spdk_rpc_start_nbd_disk(struct spdk_jsonrpc_request *request, goto invalid; } - free_rpc_start_nbd_disk(&req); - w = spdk_jsonrpc_begin_result(request); if (w == NULL) { + free_rpc_start_nbd_disk(&req); return; } - spdk_json_write_bool(w, true); + spdk_json_write_string(w, req.nbd_device); spdk_jsonrpc_end_result(request, w); + free_rpc_start_nbd_disk(&req); return; invalid: diff --git a/scripts/rpc.py b/scripts/rpc.py index 9ce47f448..f264cf1e6 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -764,9 +764,9 @@ if __name__ == "__main__": # nbd @call_cmd def start_nbd_disk(args): - rpc.nbd.start_nbd_disk(args.client, - bdev_name=args.bdev_name, - nbd_device=args.nbd_device) + print(rpc.nbd.start_nbd_disk(args.client, + bdev_name=args.bdev_name, + nbd_device=args.nbd_device)) p = subparsers.add_parser('start_nbd_disk', help='Export a bdev as a nbd disk') p.add_argument('bdev_name', help='Blockdev name to be exported. Example: Malloc0.')