diff options
author | Tejun Heo <tj@kernel.org> | 2010-07-20 22:09:02 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-07-22 22:59:15 +0200 |
commit | 9b646972467fb5fdc677f9e4251875db20bdbb64 (patch) | |
tree | 01d54cf7e0ee110bd8287c3360de0c3997e859ae /fs/cifs/cifsfs.c | |
parent | d098adfb7d281258173a43151483e52e21761021 (diff) | |
download | linux-9b646972467fb5fdc677f9e4251875db20bdbb64.tar.gz linux-9b646972467fb5fdc677f9e4251875db20bdbb64.tar.bz2 linux-9b646972467fb5fdc677f9e4251875db20bdbb64.zip |
cifs: use workqueue instead of slow-work
Workqueue can now handle high concurrency. Use system_nrt_wq
instead of slow-work.
* Updated is_valid_oplock_break() to not call cifs_oplock_break_put()
as advised by Steve French. It might cause deadlock. Instead,
reference is increased after queueing succeeded and
cifs_oplock_break() briefly grabs GlobalSMBSeslock before putting
the cfile to make sure it doesn't put before the matching get is
finished.
* Anton Blanchard reported that cifs conversion was using now gone
system_single_wq. Use system_nrt_wq which provides non-reentrance
guarantee which is enough and much better.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Steve French <sfrench@samba.org>
Cc: Anton Blanchard <anton@samba.org>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r-- | fs/cifs/cifsfs.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 78c02eb4cb1f..4c075177c8b6 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c @@ -917,15 +917,10 @@ init_cifs(void) if (rc) goto out_unregister_key_type; #endif - rc = slow_work_register_user(THIS_MODULE); - if (rc) - goto out_unregister_resolver_key; return 0; - out_unregister_resolver_key: #ifdef CONFIG_CIFS_DFS_UPCALL - unregister_key_type(&key_type_dns_resolver); out_unregister_key_type: #endif #ifdef CONFIG_CIFS_UPCALL |