diff options
author | Frederic Robra | 2019-07-10 17:20:40 +0200 |
---|---|---|
committer | Frederic Robra | 2019-07-10 17:20:40 +0200 |
commit | 1cfb09b71406b858e9fb09eb7b0b866ac0200654 (patch) | |
tree | 2a79f3a1dcd735e0bea5c2737a79e1b4f754ab35 /src/kernel/core.c | |
parent | fixed bug in alternative servers (diff) | |
download | dnbd3-ng-1cfb09b71406b858e9fb09eb7b0b866ac0200654.tar.gz dnbd3-ng-1cfb09b71406b858e9fb09eb7b0b866ac0200654.tar.xz dnbd3-ng-1cfb09b71406b858e9fb09eb7b0b866ac0200654.zip |
added receive worker
Diffstat (limited to 'src/kernel/core.c')
-rw-r--r-- | src/kernel/core.c | 9 |
1 files changed, 7 insertions, 2 deletions
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"); |