Removable IDE devices problem

marko.kohtala
2002-03-06T16:57:32Z

I have a question about the struct ide_drive_s member removable.

The problem with it is that I have an IDE flash disk that sits on normal IDE bus and this removable flag gets set because the IDE ID info has the bit set for removable. Because this flag is set, idedisk_media_change will return true every time media change check is done. This happens every time when partitions are being mounted.

Now, because idedisk_media_change tells the media is changed, the system invalidates all buffers. This is bad when the dirty buffers on some of the partitions have not been written to the disk. Data is lost and file system is corrupt.

I suppose the device tells it is removable because the controller on the disk is also used with some PCMCIA IDE devices.

I am curious if this idedisk_media_change return value is needed with some removable disks. I do not know any. I think that in case of a PCMCIA, the whole IDE controller is removed and that should invalidate all buffers.

Currently I have just patched the kernel to clear the flag for this particular disk.

But I'd need your help in finding a real fix to the problem.