Commit 03a68b44 authored by Andy Grover's avatar Andy Grover Committed by Nicholas Bellinger

target: Remove enum transport_lunflags_table

se_dev_entry.lun_flags and se_lun.lun_access are only used for keeping
track of read-write vs. read-only state. Since this is an either/or thing
we can represent it as bool, and remove the unneeded enum
transport_lunflags_table, which is left over from when there were more
flags.

Change code that uses this enum to just use true/false, and make it clear
through variable and param names that true means read-only, false means
read-write.
Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 07b63196
...@@ -86,7 +86,7 @@ transport_lookup_cmd_lun(struct se_cmd *se_cmd, u64 unpacked_lun) ...@@ -86,7 +86,7 @@ transport_lookup_cmd_lun(struct se_cmd *se_cmd, u64 unpacked_lun)
se_cmd->lun_ref_active = true; se_cmd->lun_ref_active = true;
if ((se_cmd->data_direction == DMA_TO_DEVICE) && if ((se_cmd->data_direction == DMA_TO_DEVICE) &&
(deve->lun_flags & TRANSPORT_LUNFLAGS_READ_ONLY)) { deve->lun_access_ro) {
pr_err("TARGET_CORE[%s]: Detected WRITE_PROTECTED LUN" pr_err("TARGET_CORE[%s]: Detected WRITE_PROTECTED LUN"
" Access for 0x%08llx\n", " Access for 0x%08llx\n",
se_cmd->se_tfo->get_fabric_name(), se_cmd->se_tfo->get_fabric_name(),
...@@ -199,7 +199,7 @@ bool target_lun_is_rdonly(struct se_cmd *cmd) ...@@ -199,7 +199,7 @@ bool target_lun_is_rdonly(struct se_cmd *cmd)
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_access_ro;
rcu_read_unlock(); rcu_read_unlock();
return ret; return ret;
...@@ -258,22 +258,15 @@ void core_free_device_list_for_node( ...@@ -258,22 +258,15 @@ void core_free_device_list_for_node(
void core_update_device_list_access( void core_update_device_list_access(
u64 mapped_lun, u64 mapped_lun,
u32 lun_access, bool lun_access_ro,
struct se_node_acl *nacl) struct se_node_acl *nacl)
{ {
struct se_dev_entry *deve; struct se_dev_entry *deve;
mutex_lock(&nacl->lun_entry_mutex); mutex_lock(&nacl->lun_entry_mutex);
deve = target_nacl_find_deve(nacl, mapped_lun); deve = target_nacl_find_deve(nacl, mapped_lun);
if (deve) { if (deve)
if (lun_access & TRANSPORT_LUNFLAGS_READ_WRITE) { deve->lun_access_ro = lun_access_ro;
deve->lun_flags &= ~TRANSPORT_LUNFLAGS_READ_ONLY;
deve->lun_flags |= TRANSPORT_LUNFLAGS_READ_WRITE;
} else {
deve->lun_flags &= ~TRANSPORT_LUNFLAGS_READ_WRITE;
deve->lun_flags |= TRANSPORT_LUNFLAGS_READ_ONLY;
}
}
mutex_unlock(&nacl->lun_entry_mutex); mutex_unlock(&nacl->lun_entry_mutex);
} }
...@@ -319,7 +312,7 @@ int core_enable_device_list_for_node( ...@@ -319,7 +312,7 @@ int core_enable_device_list_for_node(
struct se_lun *lun, struct se_lun *lun,
struct se_lun_acl *lun_acl, struct se_lun_acl *lun_acl,
u64 mapped_lun, u64 mapped_lun,
u32 lun_access, bool lun_access_ro,
struct se_node_acl *nacl, struct se_node_acl *nacl,
struct se_portal_group *tpg) struct se_portal_group *tpg)
{ {
...@@ -340,11 +333,7 @@ int core_enable_device_list_for_node( ...@@ -340,11 +333,7 @@ int core_enable_device_list_for_node(
kref_init(&new->pr_kref); kref_init(&new->pr_kref);
init_completion(&new->pr_comp); init_completion(&new->pr_comp);
if (lun_access & TRANSPORT_LUNFLAGS_READ_WRITE) new->lun_access_ro = lun_access_ro;
new->lun_flags |= TRANSPORT_LUNFLAGS_READ_WRITE;
else
new->lun_flags |= TRANSPORT_LUNFLAGS_READ_ONLY;
new->creation_time = get_jiffies_64(); new->creation_time = get_jiffies_64();
new->attach_count++; new->attach_count++;
...@@ -433,7 +422,7 @@ void core_disable_device_list_for_node( ...@@ -433,7 +422,7 @@ void core_disable_device_list_for_node(
hlist_del_rcu(&orig->link); hlist_del_rcu(&orig->link);
clear_bit(DEF_PR_REG_ACTIVE, &orig->deve_flags); clear_bit(DEF_PR_REG_ACTIVE, &orig->deve_flags);
orig->lun_flags = 0; orig->lun_access_ro = false;
orig->creation_time = 0; orig->creation_time = 0;
orig->attach_count--; orig->attach_count--;
/* /*
...@@ -558,8 +547,7 @@ int core_dev_add_lun( ...@@ -558,8 +547,7 @@ int core_dev_add_lun(
{ {
int rc; int rc;
rc = core_tpg_add_lun(tpg, lun, rc = core_tpg_add_lun(tpg, lun, false, dev);
TRANSPORT_LUNFLAGS_READ_WRITE, dev);
if (rc < 0) if (rc < 0)
return rc; return rc;
...@@ -635,7 +623,7 @@ int core_dev_add_initiator_node_lun_acl( ...@@ -635,7 +623,7 @@ int core_dev_add_initiator_node_lun_acl(
struct se_portal_group *tpg, struct se_portal_group *tpg,
struct se_lun_acl *lacl, struct se_lun_acl *lacl,
struct se_lun *lun, struct se_lun *lun,
u32 lun_access) bool lun_access_ro)
{ {
struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_node_acl *nacl = lacl->se_lun_nacl;
/* /*
...@@ -647,20 +635,19 @@ int core_dev_add_initiator_node_lun_acl( ...@@ -647,20 +635,19 @@ int core_dev_add_initiator_node_lun_acl(
if (!nacl) if (!nacl)
return -EINVAL; return -EINVAL;
if ((lun->lun_access & TRANSPORT_LUNFLAGS_READ_ONLY) && if (lun->lun_access_ro)
(lun_access & TRANSPORT_LUNFLAGS_READ_WRITE)) lun_access_ro = true;
lun_access = TRANSPORT_LUNFLAGS_READ_ONLY;
lacl->se_lun = lun; lacl->se_lun = lun;
if (core_enable_device_list_for_node(lun, lacl, lacl->mapped_lun, if (core_enable_device_list_for_node(lun, lacl, lacl->mapped_lun,
lun_access, nacl, tpg) < 0) lun_access_ro, nacl, tpg) < 0)
return -EINVAL; return -EINVAL;
pr_debug("%s_TPG[%hu]_LUN[%llu->%llu] - Added %s ACL for " pr_debug("%s_TPG[%hu]_LUN[%llu->%llu] - Added %s ACL for "
" InitiatorNode: %s\n", tpg->se_tpg_tfo->get_fabric_name(), " InitiatorNode: %s\n", tpg->se_tpg_tfo->get_fabric_name(),
tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun, lacl->mapped_lun, tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun, lacl->mapped_lun,
(lun_access & TRANSPORT_LUNFLAGS_READ_WRITE) ? "RW" : "RO", lun_access_ro ? "RO" : "RW",
nacl->initiatorname); nacl->initiatorname);
/* /*
* Check to see if there are any existing persistent reservation APTPL * Check to see if there are any existing persistent reservation APTPL
......
...@@ -78,7 +78,7 @@ static int target_fabric_mappedlun_link( ...@@ -78,7 +78,7 @@ static int target_fabric_mappedlun_link(
struct se_lun_acl, se_lun_group); struct se_lun_acl, se_lun_group);
struct se_portal_group *se_tpg; struct se_portal_group *se_tpg;
struct config_item *nacl_ci, *tpg_ci, *tpg_ci_s, *wwn_ci, *wwn_ci_s; struct config_item *nacl_ci, *tpg_ci, *tpg_ci_s, *wwn_ci, *wwn_ci_s;
int lun_access; bool lun_access_ro;
if (lun->lun_link_magic != SE_LUN_LINK_MAGIC) { if (lun->lun_link_magic != SE_LUN_LINK_MAGIC) {
pr_err("Bad lun->lun_link_magic, not a valid lun_ci pointer:" pr_err("Bad lun->lun_link_magic, not a valid lun_ci pointer:"
...@@ -115,19 +115,18 @@ static int target_fabric_mappedlun_link( ...@@ -115,19 +115,18 @@ static int target_fabric_mappedlun_link(
} }
/* /*
* If this struct se_node_acl was dynamically generated with * If this struct se_node_acl was dynamically generated with
* tpg_1/attrib/generate_node_acls=1, use the existing deve->lun_flags, * tpg_1/attrib/generate_node_acls=1, use the existing
* which be will write protected (READ-ONLY) when * deve->lun_access_ro value, which will be true when
* tpg_1/attrib/demo_mode_write_protect=1 * tpg_1/attrib/demo_mode_write_protect=1
*/ */
rcu_read_lock(); rcu_read_lock();
deve = target_nacl_find_deve(lacl->se_lun_nacl, lacl->mapped_lun); deve = target_nacl_find_deve(lacl->se_lun_nacl, lacl->mapped_lun);
if (deve) if (deve)
lun_access = deve->lun_flags; lun_access_ro = deve->lun_access_ro;
else else
lun_access = lun_access_ro =
(se_tpg->se_tpg_tfo->tpg_check_prod_mode_write_protect( (se_tpg->se_tpg_tfo->tpg_check_prod_mode_write_protect(
se_tpg)) ? TRANSPORT_LUNFLAGS_READ_ONLY : se_tpg)) ? true : false;
TRANSPORT_LUNFLAGS_READ_WRITE;
rcu_read_unlock(); rcu_read_unlock();
/* /*
* Determine the actual mapped LUN value user wants.. * Determine the actual mapped LUN value user wants..
...@@ -135,7 +134,7 @@ static int target_fabric_mappedlun_link( ...@@ -135,7 +134,7 @@ static int target_fabric_mappedlun_link(
* This value is what the SCSI Initiator actually sees the * This value is what the SCSI Initiator actually sees the
* $FABRIC/$WWPN/$TPGT/lun/lun_* as on their SCSI Initiator Ports. * $FABRIC/$WWPN/$TPGT/lun/lun_* as on their SCSI Initiator Ports.
*/ */
return core_dev_add_initiator_node_lun_acl(se_tpg, lacl, lun, lun_access); return core_dev_add_initiator_node_lun_acl(se_tpg, lacl, lun, lun_access_ro);
} }
static int target_fabric_mappedlun_unlink( static int target_fabric_mappedlun_unlink(
...@@ -167,8 +166,7 @@ static ssize_t target_fabric_mappedlun_write_protect_show( ...@@ -167,8 +166,7 @@ static ssize_t target_fabric_mappedlun_write_protect_show(
rcu_read_lock(); rcu_read_lock();
deve = target_nacl_find_deve(se_nacl, lacl->mapped_lun); deve = target_nacl_find_deve(se_nacl, lacl->mapped_lun);
if (deve) { if (deve) {
len = sprintf(page, "%d\n", len = sprintf(page, "%d\n", deve->lun_access_ro);
(deve->lun_flags & TRANSPORT_LUNFLAGS_READ_ONLY) ? 1 : 0);
} }
rcu_read_unlock(); rcu_read_unlock();
...@@ -181,25 +179,23 @@ static ssize_t target_fabric_mappedlun_write_protect_store( ...@@ -181,25 +179,23 @@ static ssize_t target_fabric_mappedlun_write_protect_store(
struct se_lun_acl *lacl = item_to_lun_acl(item); struct se_lun_acl *lacl = item_to_lun_acl(item);
struct se_node_acl *se_nacl = lacl->se_lun_nacl; struct se_node_acl *se_nacl = lacl->se_lun_nacl;
struct se_portal_group *se_tpg = se_nacl->se_tpg; struct se_portal_group *se_tpg = se_nacl->se_tpg;
unsigned long op; unsigned long wp;
int ret; int ret;
ret = kstrtoul(page, 0, &op); ret = kstrtoul(page, 0, &wp);
if (ret) if (ret)
return ret; return ret;
if ((op != 1) && (op != 0)) if ((wp != 1) && (wp != 0))
return -EINVAL; return -EINVAL;
core_update_device_list_access(lacl->mapped_lun, (op) ? /* wp=1 means lun_access_ro=true */
TRANSPORT_LUNFLAGS_READ_ONLY : core_update_device_list_access(lacl->mapped_lun, wp, lacl->se_lun_nacl);
TRANSPORT_LUNFLAGS_READ_WRITE,
lacl->se_lun_nacl);
pr_debug("%s_ConfigFS: Changed Initiator ACL: %s" pr_debug("%s_ConfigFS: Changed Initiator ACL: %s"
" Mapped LUN: %llu Write Protect bit to %s\n", " Mapped LUN: %llu Write Protect bit to %s\n",
se_tpg->se_tpg_tfo->get_fabric_name(), se_tpg->se_tpg_tfo->get_fabric_name(),
se_nacl->initiatorname, lacl->mapped_lun, (op) ? "ON" : "OFF"); se_nacl->initiatorname, lacl->mapped_lun, (wp) ? "ON" : "OFF");
return count; return count;
......
...@@ -60,10 +60,10 @@ struct se_dev_entry *core_get_se_deve_from_rtpi(struct se_node_acl *, u16); ...@@ -60,10 +60,10 @@ struct se_dev_entry *core_get_se_deve_from_rtpi(struct se_node_acl *, u16);
void target_pr_kref_release(struct kref *); void target_pr_kref_release(struct kref *);
void core_free_device_list_for_node(struct se_node_acl *, void core_free_device_list_for_node(struct se_node_acl *,
struct se_portal_group *); struct se_portal_group *);
void core_update_device_list_access(u64, u32, struct se_node_acl *); void core_update_device_list_access(u64, bool, struct se_node_acl *);
struct se_dev_entry *target_nacl_find_deve(struct se_node_acl *, u64); struct se_dev_entry *target_nacl_find_deve(struct se_node_acl *, u64);
int core_enable_device_list_for_node(struct se_lun *, struct se_lun_acl *, int core_enable_device_list_for_node(struct se_lun *, struct se_lun_acl *,
u64, u32, struct se_node_acl *, struct se_portal_group *); u64, bool, struct se_node_acl *, struct se_portal_group *);
void core_disable_device_list_for_node(struct se_lun *, struct se_dev_entry *, void core_disable_device_list_for_node(struct se_lun *, struct se_dev_entry *,
struct se_node_acl *, struct se_portal_group *); struct se_node_acl *, struct se_portal_group *);
void core_clear_lun_from_tpg(struct se_lun *, struct se_portal_group *); void core_clear_lun_from_tpg(struct se_lun *, struct se_portal_group *);
...@@ -73,7 +73,7 @@ void core_dev_del_lun(struct se_portal_group *, struct se_lun *); ...@@ -73,7 +73,7 @@ void core_dev_del_lun(struct se_portal_group *, struct se_lun *);
struct se_lun_acl *core_dev_init_initiator_node_lun_acl(struct se_portal_group *, struct se_lun_acl *core_dev_init_initiator_node_lun_acl(struct se_portal_group *,
struct se_node_acl *, u64, int *); struct se_node_acl *, u64, int *);
int core_dev_add_initiator_node_lun_acl(struct se_portal_group *, int core_dev_add_initiator_node_lun_acl(struct se_portal_group *,
struct se_lun_acl *, struct se_lun *lun, u32); struct se_lun_acl *, struct se_lun *lun, bool);
int core_dev_del_initiator_node_lun_acl(struct se_lun *, int core_dev_del_initiator_node_lun_acl(struct se_lun *,
struct se_lun_acl *); struct se_lun_acl *);
void core_dev_free_initiator_node_lun_acl(struct se_portal_group *, void core_dev_free_initiator_node_lun_acl(struct se_portal_group *,
...@@ -119,7 +119,7 @@ void core_tpg_add_node_to_devs(struct se_node_acl *, struct se_portal_group *, ...@@ -119,7 +119,7 @@ void core_tpg_add_node_to_devs(struct se_node_acl *, struct se_portal_group *,
void core_tpg_wait_for_nacl_pr_ref(struct se_node_acl *); void core_tpg_wait_for_nacl_pr_ref(struct se_node_acl *);
struct se_lun *core_tpg_alloc_lun(struct se_portal_group *, u64); struct se_lun *core_tpg_alloc_lun(struct se_portal_group *, u64);
int core_tpg_add_lun(struct se_portal_group *, struct se_lun *, int core_tpg_add_lun(struct se_portal_group *, struct se_lun *,
u32, struct se_device *); bool, struct se_device *);
void core_tpg_remove_lun(struct se_portal_group *, struct se_lun *); void core_tpg_remove_lun(struct se_portal_group *, struct se_lun *);
struct se_node_acl *core_tpg_add_initiator_node_acl(struct se_portal_group *tpg, struct se_node_acl *core_tpg_add_initiator_node_acl(struct se_portal_group *tpg,
const char *initiatorname); const char *initiatorname);
......
...@@ -997,7 +997,6 @@ static sense_reason_t spc_emulate_modesense(struct se_cmd *cmd) ...@@ -997,7 +997,6 @@ static sense_reason_t spc_emulate_modesense(struct se_cmd *cmd)
int length = 0; int length = 0;
int ret; int ret;
int i; int i;
bool read_only = target_lun_is_rdonly(cmd);;
memset(buf, 0, SE_MODE_PAGE_BUF); memset(buf, 0, SE_MODE_PAGE_BUF);
...@@ -1008,7 +1007,7 @@ static sense_reason_t spc_emulate_modesense(struct se_cmd *cmd) ...@@ -1008,7 +1007,7 @@ static sense_reason_t spc_emulate_modesense(struct se_cmd *cmd)
length = ten ? 3 : 2; length = ten ? 3 : 2;
/* DEVICE-SPECIFIC PARAMETER */ /* DEVICE-SPECIFIC PARAMETER */
if ((cmd->se_lun->lun_access & TRANSPORT_LUNFLAGS_READ_ONLY) || read_only) if (cmd->se_lun->lun_access_ro || target_lun_is_rdonly(cmd))
spc_modesense_write_protect(&buf[length], type); spc_modesense_write_protect(&buf[length], type);
/* /*
......
...@@ -121,7 +121,7 @@ void core_tpg_add_node_to_devs( ...@@ -121,7 +121,7 @@ void core_tpg_add_node_to_devs(
struct se_portal_group *tpg, struct se_portal_group *tpg,
struct se_lun *lun_orig) struct se_lun *lun_orig)
{ {
u32 lun_access = 0; bool lun_access_ro = true;
struct se_lun *lun; struct se_lun *lun;
struct se_device *dev; struct se_device *dev;
...@@ -137,27 +137,26 @@ void core_tpg_add_node_to_devs( ...@@ -137,27 +137,26 @@ void core_tpg_add_node_to_devs(
* demo_mode_write_protect is ON, or READ_ONLY; * demo_mode_write_protect is ON, or READ_ONLY;
*/ */
if (!tpg->se_tpg_tfo->tpg_check_demo_mode_write_protect(tpg)) { if (!tpg->se_tpg_tfo->tpg_check_demo_mode_write_protect(tpg)) {
lun_access = TRANSPORT_LUNFLAGS_READ_WRITE; lun_access_ro = false;
} else { } else {
/* /*
* Allow only optical drives to issue R/W in default RO * Allow only optical drives to issue R/W in default RO
* demo mode. * demo mode.
*/ */
if (dev->transport->get_device_type(dev) == TYPE_DISK) if (dev->transport->get_device_type(dev) == TYPE_DISK)
lun_access = TRANSPORT_LUNFLAGS_READ_ONLY; lun_access_ro = true;
else else
lun_access = TRANSPORT_LUNFLAGS_READ_WRITE; lun_access_ro = false;
} }
pr_debug("TARGET_CORE[%s]->TPG[%u]_LUN[%llu] - Adding %s" pr_debug("TARGET_CORE[%s]->TPG[%u]_LUN[%llu] - Adding %s"
" access for LUN in Demo Mode\n", " access for LUN in Demo Mode\n",
tpg->se_tpg_tfo->get_fabric_name(), tpg->se_tpg_tfo->get_fabric_name(),
tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun, tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun,
(lun_access == TRANSPORT_LUNFLAGS_READ_WRITE) ? lun_access_ro ? "READ-ONLY" : "READ-WRITE");
"READ-WRITE" : "READ-ONLY");
core_enable_device_list_for_node(lun, NULL, lun->unpacked_lun, core_enable_device_list_for_node(lun, NULL, lun->unpacked_lun,
lun_access, acl, tpg); lun_access_ro, acl, tpg);
/* /*
* Check to see if there are any existing persistent reservation * Check to see if there are any existing persistent reservation
* APTPL pre-registrations that need to be enabled for this dynamic * APTPL pre-registrations that need to be enabled for this dynamic
...@@ -522,7 +521,7 @@ int core_tpg_register( ...@@ -522,7 +521,7 @@ int core_tpg_register(
return PTR_ERR(se_tpg->tpg_virt_lun0); return PTR_ERR(se_tpg->tpg_virt_lun0);
ret = core_tpg_add_lun(se_tpg, se_tpg->tpg_virt_lun0, ret = core_tpg_add_lun(se_tpg, se_tpg->tpg_virt_lun0,
TRANSPORT_LUNFLAGS_READ_ONLY, g_lun0_dev); true, g_lun0_dev);
if (ret < 0) { if (ret < 0) {
kfree(se_tpg->tpg_virt_lun0); kfree(se_tpg->tpg_virt_lun0);
return ret; return ret;
...@@ -616,7 +615,7 @@ struct se_lun *core_tpg_alloc_lun( ...@@ -616,7 +615,7 @@ struct se_lun *core_tpg_alloc_lun(
int core_tpg_add_lun( int core_tpg_add_lun(
struct se_portal_group *tpg, struct se_portal_group *tpg,
struct se_lun *lun, struct se_lun *lun,
u32 lun_access, bool lun_access_ro,
struct se_device *dev) struct se_device *dev)
{ {
int ret; int ret;
...@@ -644,9 +643,9 @@ int core_tpg_add_lun( ...@@ -644,9 +643,9 @@ int core_tpg_add_lun(
spin_unlock(&dev->se_port_lock); spin_unlock(&dev->se_port_lock);
if (dev->dev_flags & DF_READ_ONLY) if (dev->dev_flags & DF_READ_ONLY)
lun->lun_access = TRANSPORT_LUNFLAGS_READ_ONLY; lun->lun_access_ro = true;
else else
lun->lun_access = lun_access; lun->lun_access_ro = lun_access_ro;
if (!(dev->se_hba->hba_flags & HBA_FLAGS_INTERNAL_USE)) if (!(dev->se_hba->hba_flags & HBA_FLAGS_INTERNAL_USE))
hlist_add_head_rcu(&lun->link, &tpg->tpg_lun_hlist); hlist_add_head_rcu(&lun->link, &tpg->tpg_lun_hlist);
mutex_unlock(&tpg->tpg_lun_mutex); mutex_unlock(&tpg->tpg_lun_mutex);
......
...@@ -144,12 +144,6 @@ enum se_cmd_flags_table { ...@@ -144,12 +144,6 @@ enum se_cmd_flags_table {
SCF_USE_CPUID = 0x00800000, SCF_USE_CPUID = 0x00800000,
}; };
/* struct se_dev_entry->lun_flags and struct se_lun->lun_access */
enum transport_lunflags_table {
TRANSPORT_LUNFLAGS_READ_ONLY = 0x01,
TRANSPORT_LUNFLAGS_READ_WRITE = 0x02,
};
/* /*
* Used by transport_send_check_condition_and_sense() * Used by transport_send_check_condition_and_sense()
* to signal which ASC/ASCQ sense payload should be built. * to signal which ASC/ASCQ sense payload should be built.
...@@ -634,11 +628,10 @@ struct se_lun_acl { ...@@ -634,11 +628,10 @@ struct se_lun_acl {
}; };
struct se_dev_entry { struct se_dev_entry {
/* See transport_lunflags_table */
u64 mapped_lun; u64 mapped_lun;
u64 pr_res_key; u64 pr_res_key;
u64 creation_time; u64 creation_time;
u32 lun_flags; bool lun_access_ro;
u32 attach_count; u32 attach_count;
atomic_long_t total_cmds; atomic_long_t total_cmds;
atomic_long_t read_bytes; atomic_long_t read_bytes;
...@@ -712,7 +705,7 @@ struct se_lun { ...@@ -712,7 +705,7 @@ struct se_lun {
u64 unpacked_lun; u64 unpacked_lun;
#define SE_LUN_LINK_MAGIC 0xffff7771 #define SE_LUN_LINK_MAGIC 0xffff7771
u32 lun_link_magic; u32 lun_link_magic;
u32 lun_access; bool lun_access_ro;
u32 lun_index; u32 lun_index;
/* RELATIVE TARGET PORT IDENTIFER */ /* RELATIVE TARGET PORT IDENTIFER */
......
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