Merge branch '3.4-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Pull target fix from Nicholas Bellinger: "This patch removes some incorrect legacy code to free se_lun_acl memory in the NodeACL release path that could potentially trigger an OOPS during shutdown once dynamic -> explicit initiator NodeACL conversion has occurred. That said, we've been able to trigger an OOPS in v4.0 code for this special case when the associated MappedLUNs had not also been made explicit based on active TPG LUN layout during the conversion, so it really makes senses to go ahead and drop this extra cruft to avoid any possible issues here. This ends up only effecting iscsi-target module code (it's the only user) and is CC'ed to stable." * '3.4-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: target: Drop incorrect se_lun_acl release for dynamic -> explict ACL conversion
This commit is contained in:
commit
04e53358ec
|
@ -60,7 +60,6 @@ static void core_clear_initiator_node_from_tpg(
|
|||
int i;
|
||||
struct se_dev_entry *deve;
|
||||
struct se_lun *lun;
|
||||
struct se_lun_acl *acl, *acl_tmp;
|
||||
|
||||
spin_lock_irq(&nacl->device_list_lock);
|
||||
for (i = 0; i < TRANSPORT_MAX_LUNS_PER_TPG; i++) {
|
||||
|
@ -81,28 +80,7 @@ static void core_clear_initiator_node_from_tpg(
|
|||
core_update_device_list_for_node(lun, NULL, deve->mapped_lun,
|
||||
TRANSPORT_LUNFLAGS_NO_ACCESS, nacl, tpg, 0);
|
||||
|
||||
spin_lock(&lun->lun_acl_lock);
|
||||
list_for_each_entry_safe(acl, acl_tmp,
|
||||
&lun->lun_acl_list, lacl_list) {
|
||||
if (!strcmp(acl->initiatorname, nacl->initiatorname) &&
|
||||
(acl->mapped_lun == deve->mapped_lun))
|
||||
break;
|
||||
}
|
||||
|
||||
if (!acl) {
|
||||
pr_err("Unable to locate struct se_lun_acl for %s,"
|
||||
" mapped_lun: %u\n", nacl->initiatorname,
|
||||
deve->mapped_lun);
|
||||
spin_unlock(&lun->lun_acl_lock);
|
||||
spin_lock_irq(&nacl->device_list_lock);
|
||||
continue;
|
||||
}
|
||||
|
||||
list_del(&acl->lacl_list);
|
||||
spin_unlock(&lun->lun_acl_lock);
|
||||
|
||||
spin_lock_irq(&nacl->device_list_lock);
|
||||
kfree(acl);
|
||||
}
|
||||
spin_unlock_irq(&nacl->device_list_lock);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue