Discover that bio->bio_offset is zero while the data starts in the middle of the page so I adjusted the code accordingly. Will need to sort it out later on.