From 8b642065708bbe76d085aec1c2c70a7da8e141c5 Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Tue, 25 Aug 2020 06:53:32 -0400 Subject: [PATCH] configure: add CAS_BLK_BIDI_RQ() macro Since commit 8b3238cabd50e27 in linux kernel removed blk_bidi_rq() marco, it has to be wrapped in CAS `configure` script Signed-off-by: Michal Mielewczyk --- configure.d/1_blk_bidi_req.conf | 33 ++++++++++++++++++++ modules/cas_cache/volume/vol_block_dev_top.c | 4 +-- 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 configure.d/1_blk_bidi_req.conf diff --git a/configure.d/1_blk_bidi_req.conf b/configure.d/1_blk_bidi_req.conf new file mode 100644 index 0000000..2e16fa2 --- /dev/null +++ b/configure.d/1_blk_bidi_req.conf @@ -0,0 +1,33 @@ +#!/bin/bash +# +# Copyright(c) 2012-2020 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_bidi_rq(rq);" "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_define "CAS_BLK_BIDI_RQ(rq) \\ + blk_bidi_rq(rq)" ;; + "2") + add_define "CAS_BLK_BIDI_RQ(rq) \\ + false" ;; + *) + 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 57039ca..950c331 100644 --- a/modules/cas_cache/volume/vol_block_dev_top.c +++ b/modules/cas_cache/volume/vol_block_dev_top.c @@ -22,10 +22,8 @@ static inline bool _blockdev_can_handle_rq(struct request *rq) if (unlikely(!cas_is_rq_type_fs(rq))) error = __LINE__; -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - if (unlikely(blk_bidi_rq(rq))) + if (unlikely(CAS_BLK_BIDI_RQ(rq))) error = __LINE__; -#endif if (error != 0) { CAS_PRINT_RL(KERN_ERR "%s cannot handle request (ERROR %d)\n",