aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2009-03-23 01:47:12 -0400
committerSteve French <sfrench@us.ibm.com>2009-04-16 21:26:49 -0400
commit5144ebf408ed08380917126493450ee22e63fe3f (patch)
tree29585aa19f99fda7a47efbda4f418765e6db3b9f /fs/cifs/cifsfs.c
parent2d6d589d8009b37ae03244059c93e0e8cf46910e (diff)
cifs: remove dnotify thread code
cifs: remove dnotify thread code Al Viro recently removed the dir_notify code from the kernel along with the CIFS code that used it. We can also get rid of the dnotify thread as well. In actuality, it never had anything to do with dir_notify anyway. All it did was unnecessarily wake up all the tasks waiting on the response queues every 15s. Previously that happened to prevent tasks from hanging indefinitely when the server went unresponsive, but we put those to sleep with proper timeouts now so there's no reason to keep this around. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r--fs/cifs/cifsfs.c47
1 files changed, 0 insertions, 47 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 34f5701d9555..0d6d8b573652 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -66,9 +66,6 @@ unsigned int sign_CIFS_PDUs = 1;
66extern struct task_struct *oplockThread; /* remove sparse warning */ 66extern struct task_struct *oplockThread; /* remove sparse warning */
67struct task_struct *oplockThread = NULL; 67struct task_struct *oplockThread = NULL;
68/* extern struct task_struct * dnotifyThread; remove sparse warning */ 68/* extern struct task_struct * dnotifyThread; remove sparse warning */
69#ifdef CONFIG_CIFS_EXPERIMENTAL
70static struct task_struct *dnotifyThread = NULL;
71#endif
72static const struct super_operations cifs_super_ops; 69static const struct super_operations cifs_super_ops;
73unsigned int CIFSMaxBufSize = CIFS_MAX_MSGSIZE; 70unsigned int CIFSMaxBufSize = CIFS_MAX_MSGSIZE;
74module_param(CIFSMaxBufSize, int, 0); 71module_param(CIFSMaxBufSize, int, 0);
@@ -1041,34 +1038,6 @@ static int cifs_oplock_thread(void *dummyarg)
1041 return 0; 1038 return 0;
1042} 1039}
1043 1040
1044#ifdef CONFIG_CIFS_EXPERIMENTAL
1045static int cifs_dnotify_thread(void *dummyarg)
1046{
1047 struct list_head *tmp;
1048 struct TCP_Server_Info *server;
1049
1050 do {
1051 if (try_to_freeze())
1052 continue;
1053 set_current_state(TASK_INTERRUPTIBLE);
1054 schedule_timeout(15*HZ);
1055 /* check if any stuck requests that need
1056 to be woken up and wakeq so the
1057 thread can wake up and error out */
1058 read_lock(&cifs_tcp_ses_lock);
1059 list_for_each(tmp, &cifs_tcp_ses_list) {
1060 server = list_entry(tmp, struct TCP_Server_Info,
1061 tcp_ses_list);
1062 if (atomic_read(&server->inFlight))
1063 wake_up_all(&server->response_q);
1064 }
1065 read_unlock(&cifs_tcp_ses_lock);
1066 } while (!kthread_should_stop());
1067
1068 return 0;
1069}
1070#endif
1071
1072static int __init 1041static int __init
1073init_cifs(void) 1042init_cifs(void)
1074{ 1043{
@@ -1145,21 +1114,8 @@ init_cifs(void)
1145 goto out_unregister_dfs_key_type; 1114 goto out_unregister_dfs_key_type;
1146 } 1115 }
1147 1116
1148#ifdef CONFIG_CIFS_EXPERIMENTAL
1149 dnotifyThread = kthread_run(cifs_dnotify_thread, NULL, "cifsdnotifyd");
1150 if (IS_ERR(dnotifyThread)) {
1151 rc = PTR_ERR(dnotifyThread);
1152 cERROR(1, ("error %d create dnotify thread", rc));
1153 goto out_stop_oplock_thread;
1154 }
1155#endif
1156
1157 return 0; 1117 return 0;
1158 1118
1159#ifdef CONFIG_CIFS_EXPERIMENTAL
1160 out_stop_oplock_thread:
1161#endif
1162 kthread_stop(oplockThread);
1163 out_unregister_dfs_key_type: 1119 out_unregister_dfs_key_type:
1164#ifdef CONFIG_CIFS_DFS_UPCALL 1120#ifdef CONFIG_CIFS_DFS_UPCALL
1165 unregister_key_type(&key_type_dns_resolver); 1121 unregister_key_type(&key_type_dns_resolver);
@@ -1197,9 +1153,6 @@ exit_cifs(void)
1197 cifs_destroy_inodecache(); 1153 cifs_destroy_inodecache();
1198 cifs_destroy_mids(); 1154 cifs_destroy_mids();
1199 cifs_destroy_request_bufs(); 1155 cifs_destroy_request_bufs();
1200#ifdef CONFIG_CIFS_EXPERIMENTAL
1201 kthread_stop(dnotifyThread);
1202#endif
1203 kthread_stop(oplockThread); 1156 kthread_stop(oplockThread);
1204} 1157}
1205 1158