[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] [PATCH v2 22/26] block: Add bio_alloc_pages()
- From: Kent Overstreet <koverstreet google com>
- To: Tejun Heo <tj kernel org>
- Cc: axboe kernel dk, linux-bcache vger kernel org, linux-kernel vger kernel org, dm-devel redhat com
- Subject: Re: [dm-devel] [PATCH v2 22/26] block: Add bio_alloc_pages()
- Date: Thu, 20 Sep 2012 21:50:46 -0700
On Thu, Sep 20, 2012 at 05:47:11PM -0700, Tejun Heo wrote:
> On Mon, Sep 10, 2012 at 05:22:33PM -0700, Kent Overstreet wrote:
> > + bio_for_each_segment_all(bv, bio, i) {
> > + bv->bv_page = alloc_page(gfp_mask);
> > + if (!bv->bv_page) {
> > + while (bv-- != bio->bi_io_vec)
> > + __free_page(bv->bv_page);
>
> I don't know. I feel stupid. I think it's because the loop variable
> changes between loop condition test and actual body of loop. How
> about the following? It is pointing to the member of the same array
> so I think it's not even violating pointer comparison rules.
>
> while (--bv >= bio->bi_io_vec)
> __free_page(bv->bv_page);
I can't remember why I did it that way, but I think I like yours better
- I'll change it.
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]