Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

-22
-22
drivers/target/target_core_tpg.c
··· 60 60 int i; 61 61 struct se_dev_entry *deve; 62 62 struct se_lun *lun; 63 - struct se_lun_acl *acl, *acl_tmp; 64 63 65 64 spin_lock_irq(&nacl->device_list_lock); 66 65 for (i = 0; i < TRANSPORT_MAX_LUNS_PER_TPG; i++) { ··· 80 81 core_update_device_list_for_node(lun, NULL, deve->mapped_lun, 81 82 TRANSPORT_LUNFLAGS_NO_ACCESS, nacl, tpg, 0); 82 83 83 - spin_lock(&lun->lun_acl_lock); 84 - list_for_each_entry_safe(acl, acl_tmp, 85 - &lun->lun_acl_list, lacl_list) { 86 - if (!strcmp(acl->initiatorname, nacl->initiatorname) && 87 - (acl->mapped_lun == deve->mapped_lun)) 88 - break; 89 - } 90 - 91 - if (!acl) { 92 - pr_err("Unable to locate struct se_lun_acl for %s," 93 - " mapped_lun: %u\n", nacl->initiatorname, 94 - deve->mapped_lun); 95 - spin_unlock(&lun->lun_acl_lock); 96 - spin_lock_irq(&nacl->device_list_lock); 97 - continue; 98 - } 99 - 100 - list_del(&acl->lacl_list); 101 - spin_unlock(&lun->lun_acl_lock); 102 - 103 84 spin_lock_irq(&nacl->device_list_lock); 104 - kfree(acl); 105 85 } 106 86 spin_unlock_irq(&nacl->device_list_lock); 107 87 }