Re: [PATCH 08/19] block: Introduce request_queue.initialize_rq_fn()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2017-05-28 at 10:37 +0200, Christoph Hellwig wrote:
> Oh, and btw - for the mq case we don't want to use the function
> pointer directly in the queue, but in blk_mq_ops, so that we have
> all the mq methods in one place.

Hello Christoph,

Are you sure of this? All other function pointers that apply to both blk-sq
and blk-mq occur in struct request, e.g. .make_request_fn(), .init_rq_fn()
and .exit_rq_fn(). If the .initialize_rq_fn() will be added to struct request
all I have to add to blk_get_request is the following:

        if (!IS_ERR(req) && q->initialize_rq_fn)
                q->initialize_rq_fn(req);

However, if for the mq case the .initialize_rq_fn() would be added to struct
blk_mq_ops then that code would look as follows:

        if (!IS_ERR(req))
                if (q->mq_ops)
                        q->mq_ops->initialize_rq_fn(req);
                else
                        q->initialize_rq_fn(req);

Personally I prefer the first alternative.

Bart.



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux