I ran across this error the other day and couldn't figure out what it meant. For starters, it was talking about a partition that wasn't in use (/dev/hda3). Google has a lot of information, but none of it solved my problem. So I thought I'd share.
First, the error message:
attempt to access beyond end of device
hda3: rw=16, want=8, limit=2
Read-error on swap-device (3:3:0)
Some background: I recently changed my partition table. My old swap partition was /dev/hda3. The new one is /dev/hda5. But /dev/hda3 is mentioned no where in /etc/fstab, so who is telling the kernel anything about the old swap partition?
Oh, that's right, I was. It's in the kernel settings themselves. I don't usually enable the hibernation power controls on linux cause I haven't had good results, but I thought I might try it out someday, so I checked that box in the kernel setup (Power management options - Hibernation). Now we have a new question: what should be the default resume partition? And there was my problem; I hadn't changed /dev/hda3 to /dev/hda5.
A quick recompile and reboot and no more error message.