diff --git a/lib/scsi/dev.c b/lib/scsi/dev.c index 08331f20e..45d9f718a 100644 --- a/lib/scsi/dev.c +++ b/lib/scsi/dev.c @@ -81,7 +81,6 @@ spdk_scsi_dev_destruct(struct spdk_scsi_dev *dev) continue; } - spdk_scsi_lun_unclaim(dev->lun[i]); spdk_scsi_lun_destruct(dev->lun[i]); dev->lun[i] = NULL; } @@ -89,22 +88,13 @@ spdk_scsi_dev_destruct(struct spdk_scsi_dev *dev) free_dev(dev); } -static int +static void spdk_scsi_dev_add_lun(struct spdk_scsi_dev *dev, struct spdk_scsi_lun *lun, int id) { - int rc; - - rc = spdk_scsi_lun_claim(lun); - if (rc < 0) { - return rc; - } - lun->id = id; lun->dev = dev; dev->lun[id] = lun; - - return 0; } void @@ -133,7 +123,7 @@ spdk_scsi_dev_construct(const char *name, char *lun_name_list[], int *lun_id_lis struct spdk_bdev *bdev; struct spdk_scsi_lun *lun = NULL; bool found_lun_0; - int i, rc; + int i; if (num_luns == 0) { SPDK_ERRLOG("device %s: no LUNs specified\n", name); @@ -182,11 +172,7 @@ spdk_scsi_dev_construct(const char *name, char *lun_name_list[], int *lun_id_lis goto error; } - rc = spdk_scsi_dev_add_lun(dev, lun, lun_id_list[i]); - if (rc < 0) { - spdk_scsi_lun_destruct(lun); - goto error; - } + spdk_scsi_dev_add_lun(dev, lun, lun_id_list[i]); } return dev; diff --git a/lib/scsi/lun.c b/lib/scsi/lun.c index 105d2bfb0..e2fb908e2 100644 --- a/lib/scsi/lun.c +++ b/lib/scsi/lun.c @@ -336,30 +336,6 @@ spdk_scsi_lun_destruct(struct spdk_scsi_lun *lun) return 0; } -int -spdk_scsi_lun_claim(struct spdk_scsi_lun *lun) -{ - assert(spdk_lun_db_get_lun(lun->name) != NULL); - - if (lun->claimed != false) { - return -1; - } - - lun->claimed = true; - return 0; -} - -int -spdk_scsi_lun_unclaim(struct spdk_scsi_lun *lun) -{ - assert(spdk_lun_db_get_lun(lun->name) != NULL); - assert(lun->claimed == true); - lun->claimed = false; - lun->dev = NULL; - - return 0; -} - int spdk_scsi_lun_delete(const char *lun_name) { diff --git a/lib/scsi/scsi_internal.h b/lib/scsi/scsi_internal.h index 0f39573d4..b1fdcdb91 100644 --- a/lib/scsi/scsi_internal.h +++ b/lib/scsi/scsi_internal.h @@ -107,9 +107,6 @@ struct spdk_scsi_lun { /** The LUN is removed */ bool removed; - /** The LUN is clamed */ - bool claimed; - /** Callback to be fired when LUN removal is first triggered. */ void (*hotremove_cb)(const struct spdk_scsi_lun *lun, void *arg); @@ -143,8 +140,6 @@ void spdk_scsi_lun_execute_tasks(struct spdk_scsi_lun *lun); int spdk_scsi_lun_task_mgmt_execute(struct spdk_scsi_task *task, enum spdk_scsi_task_func func); void spdk_scsi_lun_complete_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *task); void spdk_scsi_lun_complete_mgmt_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *task); -int spdk_scsi_lun_claim(struct spdk_scsi_lun *lun); -int spdk_scsi_lun_unclaim(struct spdk_scsi_lun *lun); int spdk_scsi_lun_delete(const char *lun_name); int spdk_scsi_lun_allocate_io_channel(struct spdk_scsi_lun *lun); void spdk_scsi_lun_free_io_channel(struct spdk_scsi_lun *lun); diff --git a/lib/scsi/scsi_rpc.c b/lib/scsi/scsi_rpc.c index 17eefc1a2..8dc8e6789 100644 --- a/lib/scsi/scsi_rpc.c +++ b/lib/scsi/scsi_rpc.c @@ -62,8 +62,6 @@ spdk_rpc_get_luns(struct spdk_jsonrpc_request *request, struct spdk_scsi_lun *lun = current->lun; spdk_json_write_object_begin(w); - spdk_json_write_name(w, "claimed"); - spdk_json_write_bool(w, lun->claimed); spdk_json_write_name(w, "name"); spdk_json_write_string(w, lun->name); spdk_json_write_object_end(w); diff --git a/test/iscsi_tgt/rpc_config/rpc_config.py b/test/iscsi_tgt/rpc_config/rpc_config.py index 618a01b92..f70af5e60 100755 --- a/test/iscsi_tgt/rpc_config/rpc_config.py +++ b/test/iscsi_tgt/rpc_config/rpc_config.py @@ -318,10 +318,6 @@ def verify_target_nodes_rpc_methods(rpc_py, rpc_param): "chap required value is {}, expected {}".format(jsonvalues[0]['chap_required'], rpc_param['chap_required'])) verify(jsonvalues[0]['chap_auth_group'] == rpc_param['chap_auth_group'], 1, "chap auth group value is {}, expected {}".format(jsonvalues[0]['chap_auth_group'], rpc_param['chap_auth_group'])) - output = rpc.get_luns() - jsonvalue = json.loads(output) - verify(jsonvalue[0]['claimed'] is True, 1, - "The claimed value is {}, expected true".format(jsonvalue[0]['claimed'])) rpc.delete_target_node(name) output = rpc.get_target_nodes() diff --git a/test/unit/lib/scsi/dev.c/dev_ut.c b/test/unit/lib/scsi/dev.c/dev_ut.c index 6f7afa51e..ff0895216 100644 --- a/test/unit/lib/scsi/dev.c/dev_ut.c +++ b/test/unit/lib/scsi/dev.c/dev_ut.c @@ -95,18 +95,44 @@ spdk_scsi_lun_construct(const char *name, struct spdk_bdev *bdev, void *hotremove_ctx) { struct spdk_scsi_lun *lun; + struct lun_entry *p; lun = calloc(1, sizeof(struct spdk_scsi_lun)); SPDK_CU_ASSERT_FATAL(lun != NULL); snprintf(lun->name, sizeof(lun->name), "%s", name); lun->bdev = bdev; + + TAILQ_FOREACH(p, &g_lun_head, lun_entries) { + CU_ASSERT_FATAL(p->lun != NULL); + if (strncmp(p->lun->name, lun->name, sizeof(lun->name)) == 0) + return NULL; + } + + p = calloc(1, sizeof(struct lun_entry)); + SPDK_CU_ASSERT_FATAL(p != NULL); + + p->lun = lun; + + TAILQ_INSERT_TAIL(&g_lun_head, p, lun_entries); + return lun; } int spdk_scsi_lun_destruct(struct spdk_scsi_lun *lun) { + struct lun_entry *p, *tmp; + + TAILQ_FOREACH_SAFE(p, &g_lun_head, lun_entries, tmp) { + CU_ASSERT_FATAL(p->lun != NULL); + if (strncmp(p->lun->name, lun->name, sizeof(lun->name)) == 0) { + TAILQ_REMOVE(&g_lun_head, p, lun_entries); + free(p); + break; + } + } + free(lun); return 0; } @@ -125,42 +151,6 @@ spdk_bdev_get_by_name(const char *bdev_name) return NULL; } -int -spdk_scsi_lun_claim(struct spdk_scsi_lun *lun) -{ - struct lun_entry *p; - - TAILQ_FOREACH(p, &g_lun_head, lun_entries) { - CU_ASSERT_FATAL(p->lun != NULL); - if (strncmp(p->lun->name, lun->name, sizeof(lun->name)) == 0) - return -1; - } - - p = calloc(1, sizeof(struct lun_entry)); - SPDK_CU_ASSERT_FATAL(p != NULL); - - p->lun = lun; - - TAILQ_INSERT_TAIL(&g_lun_head, p, lun_entries); - return 0; -} - -int -spdk_scsi_lun_unclaim(struct spdk_scsi_lun *lun) -{ - struct lun_entry *p, *tmp; - - TAILQ_FOREACH_SAFE(p, &g_lun_head, lun_entries, tmp) { - CU_ASSERT_FATAL(p->lun != NULL); - if (strncmp(p->lun->name, lun->name, sizeof(lun->name)) == 0) { - TAILQ_REMOVE(&g_lun_head, p, lun_entries); - free(p); - return 0; - } - } - return 0; -} - int spdk_scsi_lun_task_mgmt_execute(struct spdk_scsi_task *task, enum spdk_scsi_task_func func) { diff --git a/test/unit/lib/scsi/lun.c/lun_ut.c b/test/unit/lib/scsi/lun.c/lun_ut.c index e79ade936..8b3d48e94 100644 --- a/test/unit/lib/scsi/lun.c/lun_ut.c +++ b/test/unit/lib/scsi/lun.c/lun_ut.c @@ -659,9 +659,6 @@ lun_delete(void) lun = lun_construct(); - rc = spdk_scsi_lun_claim(lun); - CU_ASSERT_EQUAL(rc, 0); - rc = spdk_scsi_lun_delete(lun->name); CU_ASSERT_EQUAL(rc, 0);