Description of Problem: on the 2.4.9-13 kernel (errata of 7.2) and on 2.4.7 (from 7.2 orig) the following problem occurs: plug in a usb-storage compatible device (sandisk sddr-31), insert cf card mount device (ext2), all works. unmount card, remove card, re-insert card, try to mount the device and get this error: kernel: I/O error: dev 08:01, sector 2 kernel: SCSI device sda: 62721 512-byte hdwr sectors (32 MB) kernel: sda: Write Protect is off kernel: sda: sda1 kernel: FAT: bogus logical sector size 0 kernel: VFS: Can't find a valid FAT filesystem on dev 08:01. so I then modprobe -r usb-storage ; modprobe -a usb-storage then attempt to mount the device and it works. weird things: 1. the device being mounted is ext2 not FAT and is labeled as such in fstab 2. It happens every time - it appears to be some sort of odd disk change issue - b/c it won't occur if I don't remove the compact flash card.
Please make sure you are not doing it from GNOME (where magicdev confuses the issue). I am not sure "ps auxww| grep magic" is sufficient to make sure the magicdev is not running. Can you reproduce it on the console, init level 3?
magicdev is not installed. I remove it from systems I use b/c I hate it :)
any ideas on this bug - its been a minor/daily pain in my ass.
Still looking for the HW. Matt Dharm may have fixed something in the main trunk, I have to check. Sorry for the delay.
Hello, I have a similar problem with my Sony DSC-S85 digital camera when connected through the USB. I get the following error in /var/log/messages when mounting it as a vfat drive when using a 128M memory stick: Feb 6 20:17:47 bytor kernel: FAT: bogus logical sector size 65535 Feb 6 20:17:47 bytor kernel: VFS: Can't find a valid FAT filesystem on dev 08:01. I tried the modprobe -r usb-storage ; modprobe -a usb-storage proposed by skvidal, and that is a work-around for the problem. The strange thing (to me, anyway) is that a 16M memory stick works fine right out of the box with no modprobing. This seemed relevant to your problem, so I hope it helps. Good luck, jcmain
Interesting discovery. The failure to mount on the second try only occurs if it is marked as auto in /etc/fstab. If I mark it specifically as ext2 it will mount correctly. so it appears it can't figure out what the fs via the auto option
We bought SDDR-31, getting a card now.
Bug root cause: SDDR-31 fakes START STOP UNIT command without regard to a pending UNIT ATTENTION status. Such behavious confuses Linux SCSI stack. Bug scenario: Reseat the flash card to trigger UNIT ATTENTION status. This is recorded in the device until host retrieves sense. When device is open, sd_open calls check_disk_change. check_disk_change calls check_scsidisk_media_change, and it that indicates a change, calls revalidate_scsidisk. check_scsidisk_media_change issues START STOP UNIT to gather possible unit attention, but since SDDR-31 fakes that, it proceeds and returns no change indication. Later, different access paths fails when attention is returned with READ or MODE SENSE, or other command.
Created attachment 69464 [details] Possible fix.
Modified HEAD 2.4.18-7.94+ hampton 2.4.18-10+