diff options
author | Frederic Robra | 2019-07-09 12:12:55 +0200 |
---|---|---|
committer | Frederic Robra | 2019-07-09 12:12:55 +0200 |
commit | 04ba582cf57deacb07884b2d26ef60a591087dd3 (patch) | |
tree | 81c10e3fb3b04aeed85a3644998419cc37e52775 /src/kernel/core.c | |
parent | added first draft for keepalive and discovery (diff) | |
download | dnbd3-ng-04ba582cf57deacb07884b2d26ef60a591087dd3.tar.gz dnbd3-ng-04ba582cf57deacb07884b2d26ef60a591087dd3.tar.xz dnbd3-ng-04ba582cf57deacb07884b2d26ef60a591087dd3.zip |
added worker for keepalive and discovery
Diffstat (limited to 'src/kernel/core.c')
-rw-r--r-- | src/kernel/core.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/kernel/core.c b/src/kernel/core.c index 48f809b..1b0aa46 100644 --- a/src/kernel/core.c +++ b/src/kernel/core.c @@ -54,6 +54,8 @@ #define DNBD3_CMD_REQUEUED 1 + +struct workqueue_struct *dnbd3_wq; DEFINE_IDR(dnbd3_index_idr); DEFINE_MUTEX(dnbd3_index_mutex); @@ -426,6 +428,8 @@ 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); + if (max_devs < 0) { printk(KERN_ERR "dnbd3: max_devs must be >= 0\n"); return -EINVAL; @@ -483,6 +487,7 @@ static void dnbd3_dev_remove(struct dnbd3_device *dnbd3) disk->private_data = NULL; put_disk(disk); } + mutex_destroy(&dnbd3->device_lock); } static void dnbd3_put(struct dnbd3_device *dnbd3) @@ -516,6 +521,8 @@ static void __exit dnbd3_exit(void) kfree(device); + destroy_workqueue(dnbd3_wq); + printk(KERN_INFO "dnbd3: stopped kernel module\n"); } |