While I cannot suggest what you SHOULD do, or exactly why you are getting the short reads, I CAN tell you a little tiny bit about my own machine, in the hope that **maybe** you might be able to come up with some ideas. I have on occasion had the short reads as well. Things to note are such stuff as memory timings/bad memory on the PC, DMA being enabled, incorrect HDPARM settings, or bad/rapid shutdowns:
I use an Intel Pentium 4 1.8 Ghz. It's overclocked by about 400 Mhz so it runs at 2.21 Ghz. I have enabled 32 bit IO transfers through the BIOS, as well as with HDPARM in my boot scripts. I have DMA enabled in the BIOS for both IDE busses, as well as UDMA enabled using HDPARM for 3 of the 4 drives I have (the 4th one just isn't capable). I have enabled hdparm -c3 (32 bit w/sync mode) on my main harddrive, a 320 GB Seagate.
So all this works perfectly well 99% of the time.
Recently I started playing around a little bit with some more HDPARM arguments on my main hard disk and the 2nd hard disk (the other 2 devices are optical) including -K and -k which keep drive settings over reset. One of the K options caused me to have that same crap about short reads on EVERY reboot. e2fsck wouldn't finish by itself I had to run it manually, sometimes twice with -v -y argumants (verbose && yes-to-all-questions). It did take longer than usual too, but ALWAYS recovered the filesystem no problem. Also, the second hard disk seemed to get 'hung' once in a while, where the light would be on but no one was home
.. No drive activity, and it wouldn't respond when shutting down.
I removed the -K and -k options from the second hard drive, and removed ONE of the K options from the main Hard drive, and that instantly solved the short reads. Now it reboots perfectly, and never needs fsck on reboot.
On other separate occasions when I was getting short-reads, as well as 'seek-not-ready' and 'no DMA' type errors, and DMA was turning off by itself all the time, it was because I had the PCI/AGP frequency settings in the BIOS slightly out of whack, and something that also contributed to the IDE errors all the time was having the BIOS Memory Clock Speed set to AUTO. AUTO was bad news, and I was ALWAYS getting screwed up hard disk; it would almost never reboot properly. I set the Memory Clock Speed to the next lower numerical setting, and loosened the memory timings by one clock cycle, and presto. Fixed.
As I write this, The whole machine is running like a swiss watch
and haven't had a fscking problem since.
The moral of the story -- If you have either
a ) high performance settings
b ) bad memory hardware
c ) poorly tuned BIOS/Clock/Timing settings
d ) Incorrectly configured IDE device settings
e ) Old, crappy or damaged IDE cables in your machine
.. and likely other stuff, they may be contributing to the problem.
Again, not sure any of this will pertain to *your* particular IDE issue, but hopefully someone will find the info useful..