From 1cfb09b71406b858e9fb09eb7b0b866ac0200654 Mon Sep 17 00:00:00 2001 From: Frederic Robra Date: Wed, 10 Jul 2019 17:20:40 +0200 Subject: added receive worker --- src/kernel/core.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/kernel/core.c') diff --git a/src/kernel/core.c b/src/kernel/core.c index 1b0aa46..f4b7204 100644 --- a/src/kernel/core.c +++ b/src/kernel/core.c @@ -117,7 +117,7 @@ again: goto out; } - ret = dnbd3_send_request(dev, sock, blk_mq_rq_from_pdu(cmd)); + ret = dnbd3_send_request(sock, blk_mq_rq_from_pdu(cmd), cmd); if (ret == -EAGAIN) { dev_err_ratelimited(disk_to_dev(dev->disk), "request send failed, requeueing\n"); dnbd3_requeue_cmd(cmd); @@ -338,11 +338,16 @@ int dnbd3_add_device(dnbd3_device *dev, int minor) struct gendisk *disk; struct request_queue *q; int err = -ENOMEM; + int i; printk(KERN_DEBUG "dnbd3: adding device %i\n", minor); mutex_init(&dev->device_lock); mutex_lock(&dev->device_lock); + for (i = 0; i < NUMBER_CONNECTIONS; i++) { + dev->socks[i].device = dev; + } + disk = alloc_disk(1); if (!disk) { printk(KERN_WARNING "dnbd3: alloc_disc failed device %i\n", minor); @@ -428,7 +433,7 @@ static int __init dnbd3_init(void) int i; printk(KERN_DEBUG "dnbd3: starting kernel module\n"); - dnbd3_wq = alloc_workqueue("kdnbd3", WQ_MEM_RECLAIM | WQ_FREEZABLE, 1); + dnbd3_wq = alloc_workqueue("kdnbd3", WQ_MEM_RECLAIM | WQ_FREEZABLE | WQ_UNBOUND, 0); if (max_devs < 0) { printk(KERN_ERR "dnbd3: max_devs must be >= 0\n"); -- cgit v1.2.3-55-g7522