Re: [PATCH 46/60] block: deal with dirtying pages for multipage bvec

From: Christoph Hellwig
Date: Mon Oct 31 2016 - 11:40:58 EST


On Sat, Oct 29, 2016 at 04:08:45PM +0800, Ming Lei wrote:
> In bio_check_pages_dirty(), bvec->bv_page is used as flag
> for marking if the page has been dirtied & released, and if
> no, it will be dirtied in deferred workqueue.
>
> With multipage bvec, we can't do that any more, so change
> the logic into checking all pages in one mp bvec, and only
> release all these pages if all are dirtied, otherwise dirty
> them all in deferred wrokqueue.

Just defer the whole bio to the workqueue if we need to redirty any,
that avoids having all these complex iteratations.