fs/afs/flock: Remove deprecated create_singlethread_workqueue
authorBhaktipriya Shridhar <bhaktipriya96@gmail.com>
Sun, 4 Sep 2016 15:24:58 +0000 (20:54 +0530)
committerDavid Howells <dhowells@redhat.com>
Sun, 4 Sep 2016 20:41:39 +0000 (21:41 +0100)
The workqueue "afs_lock_manager" queues work item &vnode->lock_work,
per vnode. Since there can be multiple vnodes and since their work items
can be executed concurrently, alloc_workqueue has been used to replace
the deprecated create_singlethread_workqueue instance.

The WQ_MEM_RECLAIM flag has been set to ensure forward progress under
memory pressure because the workqueue is being used on a memory reclaim
path.

Since there are fixed number of work items, explicit concurrency
limit is unnecessary here.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/flock.c

index d91a9c9cfbd0a9aa0770ad394af0c156057a8a85..3191dff2c1569f83fa63ee1761fa7931d6d771ca 100644 (file)
@@ -36,8 +36,8 @@ static int afs_init_lock_manager(void)
        if (!afs_lock_manager) {
                mutex_lock(&afs_lock_manager_mutex);
                if (!afs_lock_manager) {
-                       afs_lock_manager =
-                               create_singlethread_workqueue("kafs_lockd");
+                       afs_lock_manager = alloc_workqueue("kafs_lockd",
+                                                          WQ_MEM_RECLAIM, 0);
                        if (!afs_lock_manager)
                                ret = -ENOMEM;
                }