forked from luck/tmp_suning_uos_patched
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: Hannes Reinecke <hare@suse.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
f2d3068020
commit
196e2e2aa3
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user