[801] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

Re: Bug in scsi.c and sd.c (handling of CHECK_CONDITION)?

daemon@ATHENA.MIT.EDU (D.A.B. Niggemann)
Sat Nov 11 16:48:43 1995

Date: Sat, 11 Nov 1995 15:11:29 +0000 (GMT)
From: "D.A.B. Niggemann" <dabn100@hermes.cam.ac.uk>
To: linux-scsi@vger.rutgers.edu
In-Reply-To: <9511101206.ZM4955@aib.com>

On Fri, 10 Nov 1995, Eric Youngdale wrote:
[my comments deleted]
> 	The problem is most likely still present in 1.3.37.
> 
> 	It sounds like scsi_done is doing the right thing - i.e. the error
> is being passed up to the top level code in sd.c.  If this is the correct
> thing to do, then the only thing that needs fixing is that the interrupt
> service routine in sd.c needs to be modified to recognize this case and
> act appropriately.
What would "acting appropriately" be?
1. Ignoring the error (not a good idea, as recovered_error tends to 
   indicate the disk is going flaky.)
2. Printing a ensible error message and retrying?
3. Printing a sensible error message and _not_ retying, as old data is valid?
   Is this possible? I will see....
> 
> >Finally, could somebody give a suugestion as to how I could modify the
> >CD-ROM driver so as to make it return ENODATA to user programs if
> >1. The device is actually a WORM drive.
> >2. The device returns a BLANK_CHECK error.
> 
> 	Umm, exactly what type of device are you attempting to use here?
The device is a MAXTOR RXT-800S WORM drive, which returns TYPE_WORM and
has a 2048 byte block size. I don't need weird block sizes such as 
2380(?) usied by some CD-ROM writers, the buffer cache question was
more academic in nature and has to do with CD-ROM writers often using 
silly block sizes in read-mode, making them unusable as CD-ROM drives-
or so I've read in the CD-WRITER howto.
The drive is a true WORM drive and I am intending to write a fs for such 
devices for my final-year project. Consequently I need a writeable block 
device which supports block sizes > 1024 bytes and allows a higher-level
user, or fs level program/module to detect BLANK_CHECK messages so that I 
can find file systems on the device. I do not know what the sd.c code 
does for modern, dual media drives (ones that take either MO or WORM media)
and I am also a bit worried about the write-back buffer cache, as writing 
more than once to a block might destroy data on some WORM drives.... 
Is it guranteed that in course of updating blocks on disk, the buffer 
cache never wrrites the same data twice to the same block? This would only 
be a performance issue on normal media drives.
[further comments on the buffer cache by you deleted..]
I hope that clarifies my needs...

Dirk.
__________________________________________________________

 |  /  _ \ _ _| __ \          Dirk Niggemann 
 ' /  |   |  |  |   |         Jesus College
 . \  __ <   |  |   |         Cambridge, CB58BL
_|\_\_| \_\___|____/          dabn100@cam.ac.uk
__________________________________________________________


home help back first fref pref prev next nref lref last post