On Fri, 2017-09-15 at 19:06 +0900, Damien Le Moal wrote: > The functions blk_mq_sched_free_hctx_data(), blk_mq_sched_try_merge(), > blk_mq_sched_try_insert_merge() and blk_mq_sched_request_inserted() are > all exported symbols but are declared only internally in > block/blk-mq-sched.h. Move these declarations to the new file > include/linux/blk-mq-sched.h to make them available to block scheduler > modules implemented outside of the block directory. Same comment here: should the title of this patch perhaps have been "Move declarations of ..."? > +#ifndef BLK_MQ_SCHED_H > +#define BLK_MQ_SCHED_H > + > +/* > + * Scheduler helper functions. > + */ > +void blk_mq_sched_free_hctx_data(struct request_queue *q, > + void (*exit)(struct blk_mq_hw_ctx *)); > +void blk_mq_sched_request_inserted(struct request *rq); > +bool blk_mq_sched_try_merge(struct request_queue *q, struct bio *bio, > + struct request **merged_request); > +bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq); > + > +#endif Please make sure that the order of #include directives does not affect the compilation result, e.g. by adding forward declarations for the structures used as arguments. Thanks, Bart.