void blk_queue_merge_bvec (request_queue_t * q, merge_bvec_fn * mbfn);
Usually queues have static limitations on the max sectors or segments that we can put in a request. Stacking drivers may have some settings that are dynamic, and thus we have to query the queue whether it is ok to add a new bio_vec to a bio at a given offset or not. If the block device has such limitations, it needs to register a merge_bvec_fn to control the size of bio's sent to it. Per default now merge_bvec_fn is defined for a queue, and only the fixed limits are honored.