[SCSI] scsi_debug: fix Thin provisioning support

While testing scsi_debug with these patches I found a
problem with the Block Limits VPD page function. The
length returned by the inquiry_evpd_b0() function was
too short. A patch to fix that and a cosmetic change
(that the form factor of scsi_debug is less than 1.8
inches) is attached.

Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
Douglas Gilbert 2009-10-29 01:48:31 -04:00 committed by James Bottomley
parent 851b164231
commit 1e49f78505
1 changed files with 9 additions and 4 deletions

View File

@ -685,10 +685,12 @@ static int inquiry_evpd_89(unsigned char * arr)
} }
/* Block limits VPD page (SBC-3) */
static unsigned char vpdb0_data[] = { static unsigned char vpdb0_data[] = {
/* from 4th byte */ 0,0,0,4, /* from 4th byte */ 0,0,0,4, 0,0,0x4,0, 0,0,0,64,
0,0,0x4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,64, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
}; };
static int inquiry_evpd_b0(unsigned char * arr) static int inquiry_evpd_b0(unsigned char * arr)
@ -731,11 +733,14 @@ static int inquiry_evpd_b0(unsigned char * arr)
return sizeof(vpdb0_data); return sizeof(vpdb0_data);
} }
/* Block device characteristics VPD page (SBC-3) */
static int inquiry_evpd_b1(unsigned char *arr) static int inquiry_evpd_b1(unsigned char *arr)
{ {
memset(arr, 0, 0x3c); memset(arr, 0, 0x3c);
arr[0] = 0; arr[0] = 0;
arr[1] = 1; arr[1] = 1; /* non rotating medium (e.g. solid state) */
arr[2] = 0;
arr[3] = 5; /* less than 1.8" */
return 0x3c; return 0x3c;
} }