[linux-cifs-client] Re: [PATCH 2/4] cifs: remove dnotify thread code

Steve French smfrench at gmail.com
Fri Mar 27 02:26:00 GMT 2009


It is a much higher priority to add dnotify code back in (it is long
overdue), but if I don't hear back from anyone trying to add it back
in (I agree that the thread would change) then I will remove this last
piece of the dnotify code (but it is important that we don't forget to
add it back in - dnotify or inotify is important for kde and gnome)

On Thu, Mar 26, 2009 at 12:35 PM, Jeff Layton <jlayton at redhat.com> wrote:
> 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 at redhat.com>
> ---
>  fs/cifs/cifsfs.c |   47 -----------------------------------------------
>  1 files changed, 0 insertions(+), 47 deletions(-)
>
> diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
> index 13ea532..5626af2 100644
> --- a/fs/cifs/cifsfs.c
> +++ b/fs/cifs/cifsfs.c
> @@ -66,9 +66,6 @@ unsigned int sign_CIFS_PDUs = 1;
>  extern struct task_struct *oplockThread; /* remove sparse warning */
>  struct task_struct *oplockThread = NULL;
>  /* extern struct task_struct * dnotifyThread; remove sparse warning */
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -static struct task_struct *dnotifyThread = NULL;
> -#endif
>  static const struct super_operations cifs_super_ops;
>  unsigned int CIFSMaxBufSize = CIFS_MAX_MSGSIZE;
>  module_param(CIFSMaxBufSize, int, 0);
> @@ -1039,34 +1036,6 @@ static int cifs_oplock_thread(void *dummyarg)
>        return 0;
>  }
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -static int cifs_dnotify_thread(void *dummyarg)
> -{
> -       struct list_head *tmp;
> -       struct TCP_Server_Info *server;
> -
> -       do {
> -               if (try_to_freeze())
> -                       continue;
> -               set_current_state(TASK_INTERRUPTIBLE);
> -               schedule_timeout(15*HZ);
> -               /* check if any stuck requests that need
> -                  to be woken up and wakeq so the
> -                  thread can wake up and error out */
> -               read_lock(&cifs_tcp_ses_lock);
> -               list_for_each(tmp, &cifs_tcp_ses_list) {
> -                       server = list_entry(tmp, struct TCP_Server_Info,
> -                                        tcp_ses_list);
> -                       if (atomic_read(&server->inFlight))
> -                               wake_up_all(&server->response_q);
> -               }
> -               read_unlock(&cifs_tcp_ses_lock);
> -       } while (!kthread_should_stop());
> -
> -       return 0;
> -}
> -#endif
> -
>  static int __init
>  init_cifs(void)
>  {
> @@ -1143,21 +1112,8 @@ init_cifs(void)
>                goto out_unregister_dfs_key_type;
>        }
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -       dnotifyThread = kthread_run(cifs_dnotify_thread, NULL, "cifsdnotifyd");
> -       if (IS_ERR(dnotifyThread)) {
> -               rc = PTR_ERR(dnotifyThread);
> -               cERROR(1, ("error %d create dnotify thread", rc));
> -               goto out_stop_oplock_thread;
> -       }
> -#endif
> -
>        return 0;
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> - out_stop_oplock_thread:
> -#endif
> -       kthread_stop(oplockThread);
>  out_unregister_dfs_key_type:
>  #ifdef CONFIG_CIFS_DFS_UPCALL
>        unregister_key_type(&key_type_dns_resolver);
> @@ -1195,9 +1151,6 @@ exit_cifs(void)
>        cifs_destroy_inodecache();
>        cifs_destroy_mids();
>        cifs_destroy_request_bufs();
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -       kthread_stop(dnotifyThread);
> -#endif
>        kthread_stop(oplockThread);
>  }
>
> --
> 1.5.5.6
>
>



-- 
Thanks,

Steve


More information about the linux-cifs-client mailing list