aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2010-07-20 16:09:02 -0400
committerTejun Heo <tj@kernel.org>2010-07-22 16:59:15 -0400
commit9b646972467fb5fdc677f9e4251875db20bdbb64 (patch)
tree01d54cf7e0ee110bd8287c3360de0c3997e859ae /fs/cifs/cifsfs.c
parentd098adfb7d281258173a43151483e52e21761021 (diff)
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.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 78c02eb4cb1..4c075177c8b 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -917,15 +917,10 @@ init_cifs(void)
917 if (rc) 917 if (rc)
918 goto out_unregister_key_type; 918 goto out_unregister_key_type;
919#endif 919#endif
920 rc = slow_work_register_user(THIS_MODULE);
921 if (rc)
922 goto out_unregister_resolver_key;
923 920
924 return 0; 921 return 0;
925 922
926 out_unregister_resolver_key:
927#ifdef CONFIG_CIFS_DFS_UPCALL 923#ifdef CONFIG_CIFS_DFS_UPCALL
928 unregister_key_type(&key_type_dns_resolver);
929 out_unregister_key_type: 924 out_unregister_key_type:
930#endif 925#endif
931#ifdef CONFIG_CIFS_UPCALL 926#ifdef CONFIG_CIFS_UPCALL