From 75e9f49df8ff7f00a2c28ee1e30f1d87bcce4bca Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Tue, 15 Jun 2021 12:26:14 +0200 Subject: [KERNEL] Add support for Linux kernels without blk-mq (e.g. CentOS 7) --- src/kernel/dnbd3_main.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/kernel/dnbd3_main.h') diff --git a/src/kernel/dnbd3_main.h b/src/kernel/dnbd3_main.h index f3bd8fe..efe4a76 100644 --- a/src/kernel/dnbd3_main.h +++ b/src/kernel/dnbd3_main.h @@ -26,7 +26,6 @@ #include #include #include -#include #include #include @@ -34,6 +33,26 @@ #include #include +/* define RHEL_CHECK_VERSION macro to check CentOS version */ +#if defined(RHEL_RELEASE_CODE) && defined(RHEL_RELEASE_VERSION) +#define RHEL_CHECK_VERSION(CONDITION) (CONDITION) +#else +#define RHEL_CHECK_VERSION(CONDITION) (0) +#endif + +/* version check to enable/disable blk-mq support */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) +/* enable blk-mq support for Linux kernel 4.18 and later */ +#define DNBD3_BLK_MQ +#else +/* disable blk-mq support for Linux kernel prior to 4.18 */ +#undef DNBD3_BLK_MQ +#endif + +#ifdef DNBD3_BLK_MQ +#include +#endif + extern int major; typedef struct { @@ -47,7 +66,9 @@ typedef struct { typedef struct { // block struct gendisk *disk; +#ifdef DNBD3_BLK_MQ struct blk_mq_tag_set tag_set; +#endif struct request_queue *queue; spinlock_t blk_lock; -- cgit v1.2.3-55-g7522