> > void init_request_from_bio(struct request *req, struct bio *bio)
> > {
> > req->cmd_type = REQ_TYPE_FS;
> > -
> > - req->cmd_flags |= bio->bi_opf & REQ_COMMON_MASK;
>
> Don't we still have to init cmd_flags from bi_opf at some point in the
> non-mq path?
We now pass all of bi_opf to get_request -> __get_request, so cmd_flags
is initialized to the right value from the very beginning.
> > --- a/block/blk-map.c
> > +++ b/block/blk-map.c
> > @@ -16,6 +16,8 @@
> > int blk_rq_append_bio(struct request *rq, struct bio *bio)
> > {
> > if (!rq->bio) {
> > + rq->cmd_flags &= REQ_OP_MASK;
> > + rq->cmd_flags |= (bio->bi_opf & REQ_OP_MASK);
> > blk_rq_bio_prep(rq->q, rq, bio);
>
> Should this be "&= ~REQ_OP_MASK" ?
No - blk_rq_bio_prep previous initialized just the op, and not the
flags, and this keeps the behavior. In the long run we should stop
setting the op here as well, though.
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html