#!/bin/bash # # Copyright(c) 2012-2021 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause-Clear # . $(dirname $3)/conf_framework check() { cur_name=$(basename $2) config_file_path=$1 if compile_module $cur_name "blk_mq_make_request(NULL, NULL);" "linux/blk-mq.h" then echo $cur_name "1" >> $config_file_path else echo $cur_name "2" >> $config_file_path fi } apply() { case "$1" in "1") add_function " static inline void *cas_get_default_mk_request_fn(struct request_queue *q) { if (q->make_request_fn) return q->make_request_fn; return blk_mq_make_request; }" add_function " static inline void cas_call_default_mk_request_fn(make_request_fn *fn, struct request_queue *q, struct bio *bio) { percpu_ref_get(&q->q_usage_counter); fn(q, bio); }" ;; "2") add_function " static inline void *cas_get_default_mk_request_fn(struct request_queue *q) { return q->make_request_fn; }" add_function " static inline void cas_call_default_mk_request_fn(make_request_fn *fn, struct request_queue *q, struct bio *bio) { fn(q, bio); }" ;; *) exit 1 esac } conf_run $@