Am Montag, 15. Oktober 2018, 10:45:41 CEST schrieb Christoph Hellwig: > On Mon, Oct 15, 2018 at 10:40:06AM +0200, Richard Weinberger wrote: > > hm, this breaks UML. > > Every filesystem fails to mount. > > > > I did some very rough tests, it seems that the driver fails to read > > data correctly as soon the upper layer tries to get more than 4096 bytes > > at once out of the block device. > > > > IOW: > > dd if=/dev/ubda bs=4096 count=1 skip=0 2>/dev/null| md5sum - > > is good. > > As soon I set bs to something greater it returns garbage. > > > > Later this day I might have some cycles left to debug further. > > It probably needs this on top: Sadly not. I'm checking now what exactly is broken. BTW: Why are you using for_each_bio() with bio_for_each_segment()? I thought we have rq_for_each_segment() for that. Thanks, //richard