atom feed30 messages in org.freebsd.freebsd-scsiRe: does CAM do this?
FromSent OnAttachments
David KellyApr 24, 1998 7:21 pm 
Julian ElischerApr 24, 1998 9:14 pm 
Matthew JacobApr 24, 1998 9:59 pm 
Justin T. GibbsApr 24, 1998 11:06 pm 
John S. DysonApr 24, 1998 11:53 pm 
Harlan StennApr 25, 1998 9:49 am 
Louis A. MamakosApr 25, 1998 12:51 pm 
Matthew JacobApr 25, 1998 12:59 pm 
Justin T. GibbsApr 25, 1998 1:28 pm 
Matthew JacobApr 25, 1998 1:32 pm 
Harlan StennApr 25, 1998 1:37 pm 
Harlan StennApr 25, 1998 2:34 pm 
Matthew JacobApr 25, 1998 2:44 pm 
Louis A. MamakosApr 25, 1998 3:02 pm 
Matthew JacobApr 25, 1998 3:03 pm 
Louis A. MamakosApr 25, 1998 3:07 pm 
Louis A. MamakosApr 25, 1998 3:10 pm 
Matthew JacobApr 25, 1998 3:12 pm 
Louis A. MamakosApr 25, 1998 3:23 pm 
David KellyApr 25, 1998 4:29 pm 
David KellyApr 25, 1998 4:45 pm 
Harlan StennApr 25, 1998 5:41 pm 
Louis A. MamakosApr 25, 1998 6:14 pm 
Harlan StennApr 25, 1998 6:32 pm 
Matthew JacobApr 25, 1998 9:24 pm 
Justin T. GibbsApr 25, 1998 9:27 pm 
Julian ElischerApr 25, 1998 9:35 pm 
Julian ElischerApr 25, 1998 9:42 pm 
Matthew JacobApr 25, 1998 10:06 pm 
David KellyApr 26, 1998 4:25 pm 
Subject:Re: does CAM do this?
From:Julian Elischer (jul@whistle.com)
Date:Apr 25, 1998 9:42:41 pm
List:org.freebsd.freebsd-scsi

On Sat, 25 Apr 1998, Justin T. Gibbs wrote:

This is probably because the old st driver does not set the B_ERROR buffer flag on a short read. If you don't set the B_ERROR flag while setting b_error to 0, physio will attempt to fill the user's buffer by attempting additional reads.

I think the st does this correctly.. if not then someone's broken it because I used to use this all the time when I had SCSI tapes. CAM may well "do this correctly, but st did as well (I can't test it now) I think the reason is because he doesn't understand the difference between fixed and variable block modes.

The CAM driver behaves exactly as you wish. When a short read is encountered, the user is returned a short read. Just be aware, however, that if the device is in fixed block mode, your request must be a multiple of the block size. Should it be a multiple > 1, you will get more than a single block back. The only way to determine the block size in fixed block mode is to perform a smart search for the block size.

I may be wrong but I vaguely remeber thet the 'info' field contains valid information in this case which I USED to print out in a meaningful manner in one version of st.c (possibly only the TFS version).

julian

To Unsubscribe: send mail to majo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message