On Thu, 17 Feb 2005 14:53:01 -0500 (EST), Alan Stern <[EMAIL PROTECTED]> wrote: > On Thu, 17 Feb 2005, Sara Fonseca wrote: > > > On Thu, 17 Feb 2005 10:38:36 -0500 (EST), Alan Stern > > <[EMAIL PROTECTED]> wrote: > > > On Thu, 17 Feb 2005, Sara Fonseca wrote: > > > > > > > I simulated a block error doing this: when the host tries to read one > > > > specific logical block, I change some bytes. The I try two things: > > > > 1) Just returns the number of bytes the host expects and finish with > > > > no erros. The host just reports I/O error and doesnt take any other > > > > action. > > > > > > Do you know why the host reports an I/O error if you finish with no > > > errors? How does the host realize that something went wrong? > > Actually just the SCSI system detects the error(the data doesn't make > > sense). > > Here is the error that it reports: > > > > usb-storage: *** thread sleeping. > > SCSI error : <159 0 0 0> return code = 0x10070000 > > end_request: I/O error, dev sda, sector 8 > > Buffer I/O error on device sda, logical block 1 > > That return code means the gadget transferred fewer bytes than the host > wanted. It has nothing to do with whether or not the data makes sense, > and it won't occur when (as you said) the gadget returns the number of > bytes the host expects. Normally when the host gets this return code it > will retry the read; are you sure it didn't? > > > > Why should the host ignore the damaged block? I would expect the host to > > > retry the read several times, eventually give up, and put an error message > > > in the system log. That's very different from ignoring it. > > > > I performed this test by creating a fyle system in the device. When I > > sad that It should ignore it, I meant that it shouldn't use it. The > > host repeats the read several times indeed and then reports the > > following: > > > > SCSI error : <158 0 0 0> return code = 0x8000002 > > Info fld=0x1, Current sda: sense key Medium Error > > Additional sense: Unrecovered read error > > end_request: I/O error, dev sda, sector 8 > > Buffer I/O error on device sda, logical block 1 > > > > So it knows the logical block is damaged. And it even finishes > > creating the file system. But then doesn't recognize any file system > > when I try to mount it. > > That's understandable. The filesystem probably relies on having valid > data stored in block 1, and won't work without it.
Ok. So, if the first logical block is damaged, wheter the device realloc this block or the device is unusable? > Alan Stern > > ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel