target: Return error to initiator if SET TARGET PORT GROUPS emulation fails
The error paths in target_emulate_set_target_port_groups() are all
essentially "rc = -EINVAL; goto out;" but the code at "out:" ignores
rc and always returns success. This means that even if eg explicit
ALUA is turned off, the initiator will always see a good SCSI status
for SET TARGET PORT GROUPS.
Fix this by returning rc as is intended. It appears this bug was
added by the following patch:
commit 05d1c7c0d0
Author: Andy Grover <agrover@redhat.com>
Date: Wed Jul 20 19:13:28 2011 +0000
target: Make all control CDBs scatter-gather
Signed-off-by: Roland Dreier <roland@purestorage.com>
Cc: Andy Grover <agrover@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
f2d5d9b90b
commit
59e4f541ba
|
@ -374,8 +374,9 @@ int target_emulate_set_target_port_groups(struct se_cmd *cmd)
|
|||
|
||||
out:
|
||||
transport_kunmap_data_sg(cmd);
|
||||
target_complete_cmd(cmd, GOOD);
|
||||
return 0;
|
||||
if (!rc)
|
||||
target_complete_cmd(cmd, GOOD);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static inline int core_alua_state_nonoptimized(
|
||||
|
|
Loading…
Reference in New Issue