summaryrefslogtreecommitdiffstats
path: root/src/kernel/blk.c
diff options
context:
space:
mode:
authorSimon Rettberg2025-11-14 14:42:19 +0100
committerSimon Rettberg2025-11-14 14:42:19 +0100
commit2a154a146ea0374a5d9661e7c955ffe163b12e06 (patch)
treefb5584d4785a8f6d3916fb30b3dc2aa664e08a0e /src/kernel/blk.c
parent[KERNEL] Fix build on newer kernels (diff)
downloaddnbd3-2a154a146ea0374a5d9661e7c955ffe163b12e06.tar.gz
dnbd3-2a154a146ea0374a5d9661e7c955ffe163b12e06.tar.xz
dnbd3-2a154a146ea0374a5d9661e7c955ffe163b12e06.zip
[KERNEL] Update src to support 6.14+
Diffstat (limited to 'src/kernel/blk.c')
-rw-r--r--src/kernel/blk.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/kernel/blk.c b/src/kernel/blk.c
index 84f0163..8c6f9a0 100644
--- a/src/kernel/blk.c
+++ b/src/kernel/blk.c
@@ -30,6 +30,7 @@
static int dnbd3_close_device(dnbd3_device_t *dev)
{
int result;
+ unsigned int mf;
if (dev->imgname)
dev_info(dnbd3_device_to_dev(dev), "closing down device.\n");
@@ -41,9 +42,15 @@ static int dnbd3_close_device(dnbd3_device_t *dev)
/* new requests might have been queued up, */
/* but now that imgname is NULL no new ones can show up */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 14, 0)
blk_mq_freeze_queue(dev->queue);
set_capacity(dev->disk, 0);
blk_mq_unfreeze_queue(dev->queue);
+#else
+ mf = blk_mq_freeze_queue(dev->queue);
+ set_capacity(dev->disk, 0);
+ blk_mq_unfreeze_queue(dev->queue, mf);
+#endif
return result;
}
@@ -421,7 +428,9 @@ int dnbd3_blk_add_device(dnbd3_device_t *dev, int minor)
dev->tag_set.queue_depth = 128;
dev->tag_set.numa_node = NUMA_NO_NODE;
dev->tag_set.cmd_size = sizeof(struct dnbd3_cmd);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 14, 0)
dev->tag_set.flags = BLK_MQ_F_SHOULD_MERGE;
+#endif
dev->tag_set.driver_data = dev;
dev->tag_set.timeout = BLOCK_LAYER_TIMEOUT * HZ;