diff --git a/configure.d/1_mq_flags.conf b/configure.d/1_mq_flags.conf new file mode 100644 index 0000000..f72b0ab --- /dev/null +++ b/configure.d/1_mq_flags.conf @@ -0,0 +1,34 @@ +#!/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_F_STACKING " "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_define "CAS_BLK_MQ_F_STACKING \\ + BLK_MQ_F_STACKING" + ;; + "2") + add_define "CAS_BLK_MQ_F_STACKING 0" + ;; + *) + exit 1 + esac +} + +conf_run $@ diff --git a/modules/cas_disk/exp_obj.c b/modules/cas_disk/exp_obj.c index 4ab2a32..84a5f5f 100644 --- a/modules/cas_disk/exp_obj.c +++ b/modules/cas_disk/exp_obj.c @@ -526,7 +526,7 @@ static int _casdsk_init_tag_set(struct casdsk_disk *dsk, struct blk_mq_tag_set * set->queue_depth = BLKDEV_MAX_RQ; set->cmd_size = 0; - set->flags = BLK_MQ_F_SHOULD_MERGE; + set->flags = BLK_MQ_F_SHOULD_MERGE | CAS_BLK_MQ_F_STACKING | BLK_MQ_F_BLOCKING; set->driver_data = dsk;