diff --git a/configure.d/1_mq_flags.conf b/configure.d/1_mq_flags.conf index 4eb9bf0..848e76a 100644 --- a/configure.d/1_mq_flags.conf +++ b/configure.d/1_mq_flags.conf @@ -1,6 +1,7 @@ #!/bin/bash # # Copyright(c) 2012-2022 Intel Corporation +# Copyright(c) 2025 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # @@ -22,6 +23,11 @@ check() { output=$((output+2)) fi + if compile_module $cur_name "BLK_MQ_F_SHOULD_MERGE ;" "linux/blk-mq.h" + then + output=$((output+4)) + fi + echo $cur_name $output >> $config_file_path } @@ -42,6 +48,14 @@ apply() { else add_define "CAS_BLK_MQ_F_BLOCKING 0" fi + + if ((arg & 4)) + then + add_define "CAS_BLK_MQ_F_SHOULD_MERGE \\ + BLK_MQ_F_SHOULD_MERGE" + else + add_define "CAS_BLK_MQ_F_SHOULD_MERGE 0" + fi } conf_run $@ diff --git a/modules/cas_cache/exp_obj.c b/modules/cas_cache/exp_obj.c index 8b53748..3d5f85d 100644 --- a/modules/cas_cache/exp_obj.c +++ b/modules/cas_cache/exp_obj.c @@ -351,7 +351,8 @@ static int _cas_init_tag_set(struct cas_disk *dsk, struct blk_mq_tag_set *set) set->queue_depth = CAS_BLKDEV_DEFAULT_RQ; set->cmd_size = 0; - set->flags = BLK_MQ_F_SHOULD_MERGE | CAS_BLK_MQ_F_STACKING | CAS_BLK_MQ_F_BLOCKING; + set->flags = CAS_BLK_MQ_F_SHOULD_MERGE | CAS_BLK_MQ_F_STACKING | + CAS_BLK_MQ_F_BLOCKING; set->driver_data = dsk;