Commit 196e2e2a authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Nicholas Bellinger

target: Remove TARGET_MAX_LUNS_PER_TRANSPORT

LUN allocation is now fully dynamic, so there is no need to
artificially restrain the number of exported LUNs.
Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent f2d30680
...@@ -63,9 +63,6 @@ transport_lookup_cmd_lun(struct se_cmd *se_cmd, u64 unpacked_lun) ...@@ -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_node_acl *nacl = se_sess->se_node_acl;
struct se_dev_entry *deve; struct se_dev_entry *deve;
if (unpacked_lun >= TRANSPORT_MAX_LUNS_PER_TPG)
return TCM_NON_EXISTENT_LUN;
rcu_read_lock(); rcu_read_lock();
deve = target_nacl_find_deve(nacl, unpacked_lun); deve = target_nacl_find_deve(nacl, unpacked_lun);
if (deve) { if (deve) {
...@@ -156,9 +153,6 @@ int transport_lookup_tmr_lun(struct se_cmd *se_cmd, u64 unpacked_lun) ...@@ -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; struct se_tmr_req *se_tmr = se_cmd->se_tmr_req;
unsigned long flags; unsigned long flags;
if (unpacked_lun >= TRANSPORT_MAX_LUNS_PER_TPG)
return -ENODEV;
rcu_read_lock(); rcu_read_lock();
deve = target_nacl_find_deve(nacl, unpacked_lun); deve = target_nacl_find_deve(nacl, unpacked_lun);
if (deve) { if (deve) {
...@@ -197,9 +191,6 @@ bool target_lun_is_rdonly(struct se_cmd *cmd) ...@@ -197,9 +191,6 @@ bool target_lun_is_rdonly(struct se_cmd *cmd)
struct se_dev_entry *deve; struct se_dev_entry *deve;
bool ret; bool ret;
if (cmd->se_lun->lun_access & TRANSPORT_LUNFLAGS_READ_ONLY)
return true;
rcu_read_lock(); rcu_read_lock();
deve = target_nacl_find_deve(se_sess->se_node_acl, cmd->orig_fe_lun); deve = target_nacl_find_deve(se_sess->se_node_acl, cmd->orig_fe_lun);
ret = (deve && deve->lun_flags & TRANSPORT_LUNFLAGS_READ_ONLY); ret = (deve && deve->lun_flags & TRANSPORT_LUNFLAGS_READ_ONLY);
......
...@@ -353,14 +353,6 @@ static struct config_group *target_fabric_make_mappedlun( ...@@ -353,14 +353,6 @@ static struct config_group *target_fabric_make_mappedlun(
ret = kstrtoull(buf + 4, 0, &mapped_lun); ret = kstrtoull(buf + 4, 0, &mapped_lun);
if (ret) if (ret)
goto out; 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, lacl = core_dev_init_initiator_node_lun_acl(se_tpg, se_nacl,
mapped_lun, &ret); mapped_lun, &ret);
......
...@@ -602,15 +602,6 @@ struct se_lun *core_tpg_alloc_lun( ...@@ -602,15 +602,6 @@ struct se_lun *core_tpg_alloc_lun(
{ {
struct se_lun *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); lun = kzalloc(sizeof(*lun), GFP_KERNEL);
if (!lun) { if (!lun) {
pr_err("Unable to allocate se_lun memory\n"); pr_err("Unable to allocate se_lun memory\n");
......
...@@ -864,7 +864,7 @@ static int scsiback_add_translation_entry(struct vscsibk_info *info, ...@@ -864,7 +864,7 @@ static int scsiback_add_translation_entry(struct vscsibk_info *info,
struct list_head *head = &(info->v2p_entry_lists); struct list_head *head = &(info->v2p_entry_lists);
unsigned long flags; unsigned long flags;
char *lunp; char *lunp;
unsigned int unpacked_lun; unsigned long long unpacked_lun;
struct se_lun *se_lun; struct se_lun *se_lun;
struct scsiback_tpg *tpg_entry, *tpg = NULL; struct scsiback_tpg *tpg_entry, *tpg = NULL;
char *error = "doesn't exist"; char *error = "doesn't exist";
...@@ -876,9 +876,10 @@ static int scsiback_add_translation_entry(struct vscsibk_info *info, ...@@ -876,9 +876,10 @@ static int scsiback_add_translation_entry(struct vscsibk_info *info,
} }
*lunp = 0; *lunp = 0;
lunp++; 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); pr_err("lun number not valid: %s\n", lunp);
return -EINVAL; return err;
} }
mutex_lock(&scsiback_mutex); mutex_lock(&scsiback_mutex);
......
...@@ -13,9 +13,6 @@ ...@@ -13,9 +13,6 @@
#define TARGET_CORE_MOD_VERSION "v4.1.0" #define TARGET_CORE_MOD_VERSION "v4.1.0"
#define TARGET_CORE_VERSION TARGET_CORE_MOD_VERSION #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. * By default we use 32-byte CDBs in TCM Core and subsystem plugin code.
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment