i used this patch: http://lkml.org/lkml/2006/6/8/234 and it worked! Almost the same as yours.
2007/1/19, Dmitry Nezhevenko <[EMAIL PROTECTED]>:
Possible it's same issue as with 2Gb SD card. Such cards reports that they can use block size > 512 bytes but they can't. As a result I got I/O error. Little patch to force 512 bytes block size can help.. There are a lot of such patches available. I just set blocksize to 512 bytes after detection and printk() old value.
-- EOF Daniel Ribeiro