bdev/lvol: Pass bdev name instead of bdev pointer to vbdev_lvs_create
Change the first parameter of vbdev_lvs_create() from bdev pointer to bdev name, and then remove spdk_bdev_get_by_name() from rpc_bdev_lvol_create_lvolstore(). Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I9b0e47f551657f6aa1235af37a8357b0af62d414 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4707 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
parent
3ea2bffb9e
commit
b6cbf872eb
@ -217,7 +217,7 @@ end:
|
||||
}
|
||||
|
||||
int
|
||||
vbdev_lvs_create(struct spdk_bdev *base_bdev, const char *name, uint32_t cluster_sz,
|
||||
vbdev_lvs_create(const char *base_bdev_name, const char *name, uint32_t cluster_sz,
|
||||
enum lvs_clear_method clear_method, spdk_lvs_op_with_handle_complete cb_fn, void *cb_arg)
|
||||
{
|
||||
struct spdk_bs_dev *bs_dev;
|
||||
@ -226,9 +226,9 @@ vbdev_lvs_create(struct spdk_bdev *base_bdev, const char *name, uint32_t cluster
|
||||
int rc;
|
||||
int len;
|
||||
|
||||
if (base_bdev == NULL) {
|
||||
SPDK_ERRLOG("Bdev does not exist\n");
|
||||
return -ENODEV;
|
||||
if (base_bdev_name == NULL) {
|
||||
SPDK_ERRLOG("missing base_bdev_name param\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
spdk_lvs_opts_init(&opts);
|
||||
@ -259,7 +259,7 @@ vbdev_lvs_create(struct spdk_bdev *base_bdev, const char *name, uint32_t cluster
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
rc = spdk_bdev_create_bs_dev_ext(base_bdev->name, vbdev_lvs_base_bdev_event_cb,
|
||||
rc = spdk_bdev_create_bs_dev_ext(base_bdev_name, vbdev_lvs_base_bdev_event_cb,
|
||||
NULL, &bs_dev);
|
||||
if (rc < 0) {
|
||||
SPDK_ERRLOG("Cannot create blobstore device\n");
|
||||
@ -268,7 +268,7 @@ vbdev_lvs_create(struct spdk_bdev *base_bdev, const char *name, uint32_t cluster
|
||||
}
|
||||
|
||||
lvs_req->bs_dev = bs_dev;
|
||||
lvs_req->base_bdev = base_bdev;
|
||||
lvs_req->base_bdev = bs_dev->get_base_bdev(bs_dev);
|
||||
lvs_req->cb_fn = cb_fn;
|
||||
lvs_req->cb_arg = cb_arg;
|
||||
|
||||
|
@ -47,7 +47,7 @@ struct lvol_store_bdev {
|
||||
TAILQ_ENTRY(lvol_store_bdev) lvol_stores;
|
||||
};
|
||||
|
||||
int vbdev_lvs_create(struct spdk_bdev *base_bdev, const char *name, uint32_t cluster_sz,
|
||||
int vbdev_lvs_create(const char *base_bdev_name, const char *name, uint32_t cluster_sz,
|
||||
enum lvs_clear_method clear_method, spdk_lvs_op_with_handle_complete cb_fn, void *cb_arg);
|
||||
void vbdev_lvs_destruct(struct spdk_lvol_store *lvs, spdk_lvs_op_complete cb_fn, void *cb_arg);
|
||||
void vbdev_lvs_unload(struct spdk_lvol_store *lvs, spdk_lvs_op_complete cb_fn, void *cb_arg);
|
||||
|
@ -120,7 +120,6 @@ rpc_bdev_lvol_create_lvstore(struct spdk_jsonrpc_request *request,
|
||||
const struct spdk_json_val *params)
|
||||
{
|
||||
struct rpc_bdev_lvol_create_lvstore req = {};
|
||||
struct spdk_bdev *bdev;
|
||||
int rc = 0;
|
||||
enum lvs_clear_method clear_method;
|
||||
|
||||
@ -133,13 +132,6 @@ rpc_bdev_lvol_create_lvstore(struct spdk_jsonrpc_request *request,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
bdev = spdk_bdev_get_by_name(req.bdev_name);
|
||||
if (bdev == NULL) {
|
||||
SPDK_ERRLOG("bdev '%s' does not exist\n", req.bdev_name);
|
||||
spdk_jsonrpc_send_error_response_fmt(request, -ENODEV, "Bdev %s not found", req.bdev_name);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (req.clear_method != NULL) {
|
||||
if (!strcasecmp(req.clear_method, "none")) {
|
||||
clear_method = LVS_CLEAR_WITH_NONE;
|
||||
@ -155,7 +147,7 @@ rpc_bdev_lvol_create_lvstore(struct spdk_jsonrpc_request *request,
|
||||
clear_method = LVS_CLEAR_WITH_UNMAP;
|
||||
}
|
||||
|
||||
rc = vbdev_lvs_create(bdev, req.lvs_name, req.cluster_sz, clear_method,
|
||||
rc = vbdev_lvs_create(req.bdev_name, req.lvs_name, req.cluster_sz, clear_method,
|
||||
rpc_lvol_store_construct_cb, request);
|
||||
if (rc < 0) {
|
||||
spdk_jsonrpc_send_error_response(request, -rc, spdk_strerror(rc));
|
||||
|
@ -293,6 +293,13 @@ bdev_blob_destroy(struct spdk_bs_dev *bs_dev)
|
||||
lvol_already_opened = false;
|
||||
}
|
||||
|
||||
static struct spdk_bdev *
|
||||
bdev_blob_get_base_bdev(struct spdk_bs_dev *bs_dev)
|
||||
{
|
||||
CU_ASSERT(bs_dev != NULL);
|
||||
return &g_bdev;
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bdev_create_bs_dev_ext(const char *bdev_name, spdk_bdev_event_cb_t event_cb,
|
||||
void *event_ctx, struct spdk_bs_dev **_bs_dev)
|
||||
@ -306,6 +313,7 @@ spdk_bdev_create_bs_dev_ext(const char *bdev_name, spdk_bdev_event_cb_t event_cb
|
||||
bs_dev = calloc(1, sizeof(*bs_dev));
|
||||
SPDK_CU_ASSERT_FATAL(bs_dev != NULL);
|
||||
bs_dev->destroy = bdev_blob_destroy;
|
||||
bs_dev->get_base_bdev = bdev_blob_get_base_bdev;
|
||||
|
||||
*_bs_dev = bs_dev;
|
||||
|
||||
@ -681,7 +689,7 @@ ut_lvs_destroy(void)
|
||||
struct spdk_lvol_store *lvs;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -715,7 +723,7 @@ ut_lvol_init(void)
|
||||
int rc;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -750,7 +758,7 @@ ut_lvol_snapshot(void)
|
||||
struct spdk_lvol *lvol = NULL;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -800,7 +808,7 @@ ut_lvol_clone(void)
|
||||
struct spdk_lvol *clone = NULL;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -866,7 +874,7 @@ ut_lvol_hotremove(void)
|
||||
lvol_already_opened = false;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -960,7 +968,7 @@ ut_lvol_rename(void)
|
||||
int rc;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1025,7 +1033,7 @@ ut_lvol_destroy(void)
|
||||
int rc;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1073,7 +1081,7 @@ ut_lvol_resize(void)
|
||||
int rc = 0;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1119,7 +1127,7 @@ ut_lvol_set_read_only(void)
|
||||
int rc = 0;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1159,7 +1167,7 @@ ut_lvs_unload(void)
|
||||
struct spdk_lvol_store *lvs;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1195,7 +1203,7 @@ ut_lvs_init(void)
|
||||
/* spdk_lvs_init() fails */
|
||||
lvol_store_initialize_fail = true;
|
||||
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc != 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1206,7 +1214,7 @@ ut_lvs_init(void)
|
||||
/* spdk_lvs_init_cb() fails */
|
||||
lvol_store_initialize_cb_fail = true;
|
||||
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno != 0);
|
||||
@ -1215,7 +1223,7 @@ ut_lvs_init(void)
|
||||
lvol_store_initialize_cb_fail = false;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1226,7 +1234,7 @@ ut_lvs_init(void)
|
||||
g_lvol_store = NULL;
|
||||
|
||||
/* Bdev with lvol store already claimed */
|
||||
rc = vbdev_lvs_create(&g_bdev, "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
rc = vbdev_lvs_create("bdev", "lvs", 0, LVS_CLEAR_WITH_UNMAP, lvol_store_op_with_handle_complete,
|
||||
NULL);
|
||||
CU_ASSERT(rc != 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
@ -1360,7 +1368,7 @@ ut_lvs_rename(void)
|
||||
struct spdk_lvol_store *lvs;
|
||||
|
||||
/* Lvol store is successfully created */
|
||||
rc = vbdev_lvs_create(&g_bdev, "old_lvs_name", 0, LVS_CLEAR_WITH_UNMAP,
|
||||
rc = vbdev_lvs_create("bdev", "old_lvs_name", 0, LVS_CLEAR_WITH_UNMAP,
|
||||
lvol_store_op_with_handle_complete, NULL);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(g_lvserrno == 0);
|
||||
|
Loading…
Reference in New Issue
Block a user