Hi Bernhard, On Wed, 2012-10-24 at 15:53 +0200, Bernhard Kohl wrote: > With kernel 3.6 some obsolete SCSI-2 commands including SEEK_10 have > have been removed by commit 1fd032ee10d2816c947f5d5b9abda95e728f0a8f > "target: move code for CDB emulation". > > There are still clients out there which use these old SCSI-2 commands. > This mainly happens when running VMs with legacy guest systems, > connected via SCSI command pass-through to iSCSI targets. Make them > happy and return status GOOD. > > Many real SCSI disks or external iSCSI storage devices still support > these old commands. So let's make LIO backward compatible as well. > > This patch adds support for the previously removed SEEK_10 and > additionally the SEEK_6 and REZERO_UNIT commands. > > Signed-off-by: Bernhard Kohl <bernhard.kohl@xxxxxxx> > --- Nice catch here. Applied to target-pending/master and including in the next v3.7-rc fixes PULL request. Also adding CC to stable so that v3.6 picks up this regression bug-fix as well. Thanks Bernhard ! --nab > drivers/target/target_core_sbc.c | 18 ++++++++++++++++++ > 1 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c > index a9dd946..323e192 100644 > --- a/drivers/target/target_core_sbc.c > +++ b/drivers/target/target_core_sbc.c > @@ -128,6 +128,12 @@ static int sbc_emulate_verify(struct se_cmd *cmd) > return 0; > } > > +static int sbc_emulate_noop(struct se_cmd *cmd) > +{ > + target_complete_cmd(cmd, GOOD); > + return 0; > +} > + > static inline u32 sbc_get_size(struct se_cmd *cmd, u32 sectors) > { > return cmd->se_dev->se_sub_dev->se_dev_attrib.block_size * sectors; > @@ -524,6 +530,18 @@ int sbc_parse_cdb(struct se_cmd *cmd, struct spc_ops *ops) > size = 0; > cmd->execute_cmd = sbc_emulate_verify; > break; > + case REZERO_UNIT: > + case SEEK_6: > + case SEEK_10: > + /* > + * There are still clients out there which use these old SCSI-2 > + * commands. This mainly happens when running VMs with legacy > + * guest systems, connected via SCSI command pass-through to > + * iSCSI targets. Make them happy and return status GOOD. > + */ > + size = 0; > + cmd->execute_cmd = sbc_emulate_noop; > + break; > default: > ret = spc_parse_cdb(cmd, &size); > if (ret) -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html