On (23/08/05 07:55), Christoph Hellwig wrote: > Commit af8b04c63708 ("zram: simplify bvec iteration in > __zram_make_request") changed the bio iteration in zram to rely on the > implicit capping to page boundaries in bio_for_each_segment. But it > failed to care for the fact zram not only care about the page alignment > of the bio payload, but also the page alignment into the device. For > buffered I/O and swap those are the same, but for direct I/O or kernel > internal I/O like XFS log buffer writes they can differ. > > Fix this by open coding bio_for_each_segment and limiting the bvec len > so that it never crosses over a page alignment boundary in the device > in addition to the payload boundary already taken care of by > bio_iter_iovec. > > Fixes: af8b04c63708 ("zram: simplify bvec iteration in __zram_make_request") > Reported-by: Dusty Mabe <dusty@xxxxxxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Acked-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>