Re: [PATCH] target: reintroduce some obsolete SCSI-2 commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux