Red Hat Bugzilla – Bug 56856
(USB STORAGE)usb compact flash reader (sandisk SDDR-31) works only after unloading and reloading usb-storage module
Last modified: 2007-04-18 12:38:28 EDT
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.
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.
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.
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
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.
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]