target: Remove TARGET_MAX_LUNS_PER_TRANSPORT
authorHannes Reinecke <hare@suse.de>
Wed, 10 Jun 2015 06:41:23 +0000 (08:41 +0200)
committerNicholas Bellinger <nab@linux-iscsi.org>
Tue, 16 Jun 2015 06:26:03 +0000 (23:26 -0700)
LUN allocation is now fully dynamic, so there is no need to
artificially restrain the number of exported LUNs.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_device.c
drivers/target/target_core_fabric_configfs.c
drivers/target/target_core_tpg.c
drivers/xen/xen-scsiback.c
include/target/target_core_base.h

index 2ea7322c4dd41bbf403e9c6c756e7893d6ca1bf0..ed084023e7d47447ea06c194c84d29253d50ecf0 100644 (file)
@@ -63,9 +63,6 @@ transport_lookup_cmd_lun(struct se_cmd *se_cmd, u64 unpacked_lun)
        struct se_node_acl *nacl = se_sess->se_node_acl;
        struct se_dev_entry *deve;
 
-       if (unpacked_lun >= TRANSPORT_MAX_LUNS_PER_TPG)
-               return TCM_NON_EXISTENT_LUN;
-
        rcu_read_lock();
        deve = target_nacl_find_deve(nacl, unpacked_lun);
        if (deve) {
@@ -156,9 +153,6 @@ int transport_lookup_tmr_lun(struct se_cmd *se_cmd, u64 unpacked_lun)
        struct se_tmr_req *se_tmr = se_cmd->se_tmr_req;
        unsigned long flags;
 
-       if (unpacked_lun >= TRANSPORT_MAX_LUNS_PER_TPG)
-               return -ENODEV;
-
        rcu_read_lock();
        deve = target_nacl_find_deve(nacl, unpacked_lun);
        if (deve) {
@@ -197,9 +191,6 @@ bool target_lun_is_rdonly(struct se_cmd *cmd)
        struct se_dev_entry *deve;
        bool ret;
 
-       if (cmd->se_lun->lun_access & TRANSPORT_LUNFLAGS_READ_ONLY)
-               return true;
-
        rcu_read_lock();
        deve = target_nacl_find_deve(se_sess->se_node_acl, cmd->orig_fe_lun);
        ret = (deve && deve->lun_flags & TRANSPORT_LUNFLAGS_READ_ONLY);
index 2fd493e416b05ec1336cffe7b405c52659bafa16..6cfee595f3f2eac223da29f6d1cab4208ce2e79c 100644 (file)
@@ -353,14 +353,6 @@ static struct config_group *target_fabric_make_mappedlun(
        ret = kstrtoull(buf + 4, 0, &mapped_lun);
        if (ret)
                goto out;
-       if (mapped_lun > (TRANSPORT_MAX_LUNS_PER_TPG-1)) {
-               pr_err("Mapped LUN: %llu exceeds TRANSPORT_MAX_LUNS_PER_TPG"
-                       "-1: %u for Target Portal Group: %u\n", mapped_lun,
-                       TRANSPORT_MAX_LUNS_PER_TPG-1,
-                       se_tpg->se_tpg_tfo->tpg_get_tag(se_tpg));
-               ret = -EINVAL;
-               goto out;
-       }
 
        lacl = core_dev_init_initiator_node_lun_acl(se_tpg, se_nacl,
                        mapped_lun, &ret);
index 82ed8a0f3f0ec8d2f08580bf79e16fc3f96c81e3..aa39bc89227be4765a758c251be16bb6feac8b98 100644 (file)
@@ -602,15 +602,6 @@ struct se_lun *core_tpg_alloc_lun(
 {
        struct se_lun *lun;
 
-       if (unpacked_lun > (TRANSPORT_MAX_LUNS_PER_TPG-1)) {
-               pr_err("%s LUN: %llu exceeds TRANSPORT_MAX_LUNS_PER_TPG"
-                       "-1: %u for Target Portal Group: %u\n",
-                       tpg->se_tpg_tfo->get_fabric_name(),
-                       unpacked_lun, TRANSPORT_MAX_LUNS_PER_TPG-1,
-                       tpg->se_tpg_tfo->tpg_get_tag(tpg));
-               return ERR_PTR(-EOVERFLOW);
-       }
-
        lun = kzalloc(sizeof(*lun), GFP_KERNEL);
        if (!lun) {
                pr_err("Unable to allocate se_lun memory\n");
index 25144a0ff07cbad45bd00828c419a4b9dd4f63cd..10d67802a2fb319de1e1557c2530f022fe0c6214 100644 (file)
@@ -864,7 +864,7 @@ static int scsiback_add_translation_entry(struct vscsibk_info *info,
        struct list_head *head = &(info->v2p_entry_lists);
        unsigned long flags;
        char *lunp;
-       unsigned int unpacked_lun;
+       unsigned long long unpacked_lun;
        struct se_lun *se_lun;
        struct scsiback_tpg *tpg_entry, *tpg = NULL;
        char *error = "doesn't exist";
@@ -876,9 +876,10 @@ static int scsiback_add_translation_entry(struct vscsibk_info *info,
        }
        *lunp = 0;
        lunp++;
-       if (kstrtouint(lunp, 10, &unpacked_lun) || unpacked_lun >= TRANSPORT_MAX_LUNS_PER_TPG) {
+       err = kstrtoull(lunp, 10, &unpacked_lun);
+       if (err < 0) {
                pr_err("lun number not valid: %s\n", lunp);
-               return -EINVAL;
+               return err;
        }
 
        mutex_lock(&scsiback_mutex);
index 836ff8abdf189b11697eabcfa60eece9f0afacc2..8cb612613c10552ae81c0eda67bc2df72f9f7c2d 100644 (file)
@@ -13,9 +13,6 @@
 #define TARGET_CORE_MOD_VERSION                "v4.1.0"
 #define TARGET_CORE_VERSION            TARGET_CORE_MOD_VERSION
 
-/* Maximum Number of LUNs per Target Portal Group */
-/* Don't raise above 511 or REPORT_LUNS needs to handle >1 page */
-#define TRANSPORT_MAX_LUNS_PER_TPG             256
 /*
  * By default we use 32-byte CDBs in TCM Core and subsystem plugin code.
  *
This page took 0.051755 seconds and 5 git commands to generate.