On Mon, Jun 18, 2012 at 09:50:03AM -0700, [email protected] wrote: > > The patch below does not apply to the 3.4-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <[email protected]>. > > thanks, > > greg k-h
This fixed version for 3.2 applies also for 3.4: >From 4d024961ae5aa9065f14c888860101d807ab9a74 Mon Sep 17 00:00:00 2001 From: Ben Hutchings <[email protected]> Date: Sun, 17 Jun 2012 19:00:38 +0100 Subject: [PATCH] target: Return error to initiator if SET TARGET PORT GROUPS emulation fails 3.2-stable review patch. If anyone has any objections, please let me know. ------------------ From: Roland Dreier <[email protected]> commit 59e4f541baf728dbb426949bfa9f6862387ffd0e upstream. 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 05d1c7c0d0db4cc25548d9aadebb416888a82327 Author: Andy Grover <[email protected]> Date: Wed Jul 20 19:13:28 2011 +0000 target: Make all control CDBs scatter-gather Signed-off-by: Roland Dreier <[email protected]> Cc: Andy Grover <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]> [bwh: Backported to 3.2: we have transport_complete_task() and not target_complete_cmd()] Signed-off-by: Ben Hutchings <[email protected]> --- drivers/target/target_core_alua.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c index 5b05744..0364ca2 100644 --- a/drivers/target/target_core_alua.c +++ b/drivers/target/target_core_alua.c @@ -352,9 +352,11 @@ int target_emulate_set_target_port_groups(struct se_task *task) out: transport_kunmap_data_sg(cmd); - task->task_scsi_status = GOOD; - transport_complete_task(task, 1); - return 0; + if (!rc) { + task->task_scsi_status = GOOD; + transport_complete_task(task, 1); + } + return rc; } static inline int core_alua_state_nonoptimized( -- 1.7.9.5 > > ------------------ original commit in Linus's tree ------------------ > > From 59e4f541baf728dbb426949bfa9f6862387ffd0e Mon Sep 17 00:00:00 2001 > From: Roland Dreier <[email protected]> > Date: Mon, 4 Jun 2012 23:24:51 -0700 > Subject: [PATCH] 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 05d1c7c0d0db4cc25548d9aadebb416888a82327 > Author: Andy Grover <[email protected]> > Date: Wed Jul 20 19:13:28 2011 +0000 > > target: Make all control CDBs scatter-gather > > Signed-off-by: Roland Dreier <[email protected]> > Cc: Andy Grover <[email protected]> > Cc: <[email protected]> > Signed-off-by: Nicholas Bellinger <[email protected]> > > diff --git a/drivers/target/target_core_alua.c > b/drivers/target/target_core_alua.c > index e624b83..9179997 100644 > --- a/drivers/target/target_core_alua.c > +++ b/drivers/target/target_core_alua.c > @@ -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( > > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to [email protected] > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- []'s Herton -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
