diff options
author | Fubo Chen <fubo.chen@gmail.com> | 2011-02-10 02:34:48 +0300 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2011-02-12 20:38:17 +0300 |
commit | 85dc98d93f3dc41cce54118a7abab9e6aa616dd2 (patch) | |
tree | 3d0f9db5817dca8a16e60b10ef9e69b81d69719c /drivers/target | |
parent | 29fe609d124d6d7478d1241bb82dc2e00509f516 (diff) | |
download | linux-85dc98d93f3dc41cce54118a7abab9e6aa616dd2.tar.xz |
[SCSI] target: fixed missing lock drop in error path
The struct se_node_acl->device_list_lock needs to be released if either
sanity check for struct se_dev_entry->se_lun_acl or deve->se_lun fails.
Signed-off-by: Fubo Chen <fubo.chen@gmail.com>
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/target_core_device.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index 969d72785288..9551ab541f03 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -395,12 +395,14 @@ int core_update_device_list_for_node( printk(KERN_ERR "struct se_dev_entry->se_lun_acl" " already set for demo mode -> explict" " LUN ACL transition\n"); + spin_unlock_irq(&nacl->device_list_lock); return -1; } if (deve->se_lun != lun) { printk(KERN_ERR "struct se_dev_entry->se_lun does" " match passed struct se_lun for demo mode" " -> explict LUN ACL transition\n"); + spin_unlock_irq(&nacl->device_list_lock); return -1; } deve->se_lun_acl = lun_acl; |