[SLOF] [PATCH] scsi: implement READ (16) command

Thomas Huth thuth at redhat.com
Wed Sep 28 16:52:23 AEST 2016


On 28.09.2016 08:37, Nikunj A Dadhania wrote:
> For disks bigger than 2TB(512B sector size), read-10 would fail as it is
> limited by the block address(4bytes). Add and use SCSI command READ(16)
> which has 8bytes block address.
> 
> Signed-off-by: Nikunj A Dadhania <nikunj at linux.vnet.ibm.com>
> ---
>  slof/fs/scsi-disk.fs    |  2 +-
>  slof/fs/scsi-support.fs | 29 +++++++++++++++++++++++++++++
>  2 files changed, 30 insertions(+), 1 deletion(-)
> 
> diff --git a/slof/fs/scsi-disk.fs b/slof/fs/scsi-disk.fs
> index 2f7d740..83aab89 100644
> --- a/slof/fs/scsi-disk.fs
> +++ b/slof/fs/scsi-disk.fs
> @@ -82,7 +82,7 @@ CREATE cdb 10 allot
>      >r rot r> 			                ( block# #blocks addr len )
>      2swap                                       ( addr len block# #blocks )
>      dup >r
> -    cdb scsi-build-read-10                      ( addr len )
> +    cdb scsi-build-read-16                      ( addr len )
>      r> -rot                                     ( #blocks addr len )
>      scsi-dir-read cdb scsi-param-size 10
>      retry-scsi-command

I'm feeling a little bit uneasy about using READ-16 here
unconditionally... IIRC, the scsi stack is also used for USB devices,
and these often used to only implement the bare minimum of SCSI
commands, i.e. things like READ-16 are likely not supported there.
Could you maybe add a check if the block address can not be stored in 4
bytes anymore, and only use the READ-16 in that case?

 Thanks,
  Thomas



More information about the SLOF mailing list