On Tue, 2019-08-20 at 17:24 +0800, Ming Lei wrote: > > It can be quite hard to deal with non-512 aligned sector buffer, since > one sector buffer may cross two pages, so far one workaround I thought > of is to not merge such IO buffer into one bvec. > > Verma, could you try the following patch? Hi Ming, I can hit the same failure with this patch. Full thread, in case you haven't already seen it: https://lore.kernel.org/linux-xfs/e49a6a3a244db055995769eb844c281f93e50ab9.camel@xxxxxxxxx/ > > diff --git a/block/bio.c b/block/bio.c > index 24a496f5d2e2..49deab2ac8c4 100644 > --- a/block/bio.c > +++ b/block/bio.c > @@ -769,6 +769,9 @@ bool __bio_try_merge_page(struct bio *bio, struct > page *page, > if (WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED))) > return false; > > + if (off & 511) > + return false; > + > if (bio->bi_vcnt > 0) { > struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; > > > Thanks, > Ming