diff options
author | Manuel Bentele | 2021-06-15 12:26:14 +0200 |
---|---|---|
committer | Manuel Bentele | 2021-06-16 11:41:00 +0200 |
commit | 75e9f49df8ff7f00a2c28ee1e30f1d87bcce4bca (patch) | |
tree | 8e07b51378028acb2edaeceba31f79f67c464084 /src/kernel/dnbd3_main.h | |
parent | server.conf: Update uplinkTimeout to match default value (diff) | |
download | dnbd3-75e9f49df8ff7f00a2c28ee1e30f1d87bcce4bca.tar.gz dnbd3-75e9f49df8ff7f00a2c28ee1e30f1d87bcce4bca.tar.xz dnbd3-75e9f49df8ff7f00a2c28ee1e30f1d87bcce4bca.zip |
[KERNEL] Add support for Linux kernels without blk-mq (e.g. CentOS 7)
Diffstat (limited to 'src/kernel/dnbd3_main.h')
-rw-r--r-- | src/kernel/dnbd3_main.h | 23 |
1 files changed, 22 insertions, 1 deletions
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 <linux/kthread.h> #include <linux/module.h> #include <linux/blkdev.h> -#include <linux/blk-mq.h> #include <linux/mutex.h> #include <net/sock.h> @@ -34,6 +33,26 @@ #include <dnbd3/types.h> #include <dnbd3/shared/serialize.h> +/* 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 <linux/blk-mq.h> +#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; |