From c3c050851dc866f2311d33a262ed81af8c57ce22 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 13 Oct 2015 13:37:26 +0200 Subject: [KERNEL] Add support for kernel 4.2.x --- src/kernel/blk.h | 4 ++++ src/kernel/net.c | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/kernel/blk.h b/src/kernel/blk.h index 28f6f8c..5091d19 100644 --- a/src/kernel/blk.h +++ b/src/kernel/blk.h @@ -23,6 +23,10 @@ #include "dnbd3.h" +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) +#define REQ_TYPE_SPECIAL REQ_TYPE_DRV_PRIV +#endif + extern struct block_device_operations dnbd3_blk_ops; int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg); diff --git a/src/kernel/net.c b/src/kernel/net.c index ab7a211..3392feb 100644 --- a/src/kernel/net.c +++ b/src/kernel/net.c @@ -30,6 +30,12 @@ #define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) +#define dnbd3_sock_create(af,type,proto,sock) sock_create_kern(&init_net, af, type, proto, sock) +#else +#define dnbd3_sock_create(af,type,proto,sock) sock_create_kern(af, type, proto, sock) +#endif + /** * Some macros for easier debug output. Location in source-code * as well as server IP:port info will be printed. @@ -169,7 +175,7 @@ int dnbd3_net_connect(dnbd3_device_t *dev) int mlen; init_msghdr(msg); - if (sock_create_kern(dev->cur_server.host.type, SOCK_STREAM, IPPROTO_TCP, &dev->sock) < 0) + if (dnbd3_sock_create(dev->cur_server.host.type, SOCK_STREAM, IPPROTO_TCP, &dev->sock) < 0) error_dev("ERROR: Couldn't create socket (v6)."); kernel_setsockopt(dev->sock, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout)); @@ -543,7 +549,7 @@ int dnbd3_net_discover(void *data) continue; // Initialize socket and connect - if (sock_create_kern(dev->alt_servers[i].host.type, SOCK_STREAM, IPPROTO_TCP, &sock) < 0) + if (dnbd3_sock_create(dev->alt_servers[i].host.type, SOCK_STREAM, IPPROTO_TCP, &sock) < 0) { debug_alt("ERROR: Couldn't create socket (discover)."); sock = NULL; -- cgit v1.2.3-55-g7522