Messages in this thread | | | Date | Tue, 13 Jan 2009 19:40:58 +0900 | From | Tejun Heo <> | Subject | Re: new barrier warnings in 2.6.29-rc1 |
| |
Hello, Jens.
Jens Axboe wrote: > On Tue, Jan 13 2009, Tejun Heo wrote: >> I think the right thing to do is setting REQ_QUIET on the trial >> barrier request. > > It would surely work, but XFS doesn't really have a way to do that. Then > we would have to add a bio quiet flag and inherit that. > > I kind of liked the old behaviour. What about something like the below? > > diff --git a/block/blk-core.c b/block/blk-core.c > index a824e49..eddba4a 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -1448,6 +1448,11 @@ static inline void __generic_make_request(struct bio *bio) > err = -EOPNOTSUPP; > goto end_io; > } > + if (bio_barrier(bio) && bio_has_data(bio) && > + (q->next_ordered == QUEUE_ORDERED_NONE)) { > + err = -EOPNOTSUPP; > + goto end_io; > + } > > ret = q->make_request_fn(q, bio); > } while (ret);
I have no objection against it. I kind of like having single test point but it's a corner case anyway so no biggie.
Thanks.
-- tejun
| |