diff --git a/configure.d/1_queue_nonrot.conf b/configure.d/1_queue_nonrot.conf new file mode 100644 index 0000000..952bccb --- /dev/null +++ b/configure.d/1_queue_nonrot.conf @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Copyright(c) 2012-2022 Intel Corporation +# Copyright(c) 2025 Huawei Technologies +# SPDX-License-Identifier: BSD-3-Clause +# + +. $(dirname $3)/conf_framework.sh + +check() { + cur_name=$(basename $2) + config_file_path=$1 + if compile_module $cur_name "(int)QUEUE_FLAG_NONROT;" "linux/blkdev.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_queue_set_nonrot(struct request_queue *q) + { + q->queue_flags |= (1 << QUEUE_FLAG_NONROT); + }" ;; + "2") + add_function " + static inline void cas_queue_set_nonrot(struct request_queue *q) + { + }" ;; + *) + exit 1 + esac +} + +conf_run $@ diff --git a/modules/cas_cache/volume/vol_block_dev_top.c b/modules/cas_cache/volume/vol_block_dev_top.c index be79dc0..05207e7 100644 --- a/modules/cas_cache/volume/vol_block_dev_top.c +++ b/modules/cas_cache/volume/vol_block_dev_top.c @@ -129,7 +129,7 @@ static int blkdev_core_set_geometry(struct cas_disk *dsk, void *private) blkdev_set_discard_properties(cache, exp_q, core_bd, sectors); - exp_q->queue_flags |= (1 << QUEUE_FLAG_NONROT); + cas_queue_set_nonrot(exp_q); return 0; }