On 8/16/14, Jens Axboe <axboe@xxxxxxxxx> wrote: > On 08/14/2014 09:50 AM, Ming Lei wrote: >> Currently pdu of the flush rq is simlpy copied from another rq, >> it isn't enough to initialize pointer field well, so introduce >> the callback for driver to handle the case easily. > > This is the only patch I don't really like. Can't we make do with > calling ->init_request() for this instead of having to add another > (weird) hook? I considered ->init_request() before, but looks there are some problems: - from API view, both 'hctx_idx' and 'request_idx' parameter don't make sense for flush rq since it beongs to request queue instead of any one of hctx - init_request()/exit_request() are weird too, since they will be called for queuing every flush req, and they should have been called one shot - it is called before queuing each flush req, and might introduce a bit cost unnecessarily if init_request does lots of stuff - using init_request may break some current drivers(like scsi) Now I feel ->init_flush_rq() isn't good too, how about introducing prepare_flush_rq() and unprepare_flush_rq()? And they can be lightweight and have document benefit at least. Thanks, -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html