On Tue, Aug 05, 2014 at 10:22:11AM +0800, Lai Jiangshan wrote:
> I don't think this one needs nested sleeps.
> 
> diff --git a/fs/notify/inotify/inotify_user.c 
> b/fs/notify/inotify/inotify_user.c
> index cc423a3..1ca5888 100644
> --- a/fs/notify/inotify/inotify_user.c
> +++ b/fs/notify/inotify/inotify_user.c
> @@ -233,15 +233,16 @@ static ssize_t inotify_read(struct file *file, char 
> __user *buf,
>       group = file->private_data;
>  
>       while (1) {
> +             mutex_lock(&group->notification_mutex);
>               prepare_to_wait(&group->notification_waitq, &wait, 
> TASK_INTERRUPTIBLE);
>  
> -             mutex_lock(&group->notification_mutex);
>               kevent = get_one_event(group, count);
>               mutex_unlock(&group->notification_mutex);
>  
>               pr_debug("%s: group=%p kevent=%p\n", __func__, group, kevent);
>  
>               if (kevent) {
> +                     __set_current_state(TASK_RUNNING);
>                       ret = PTR_ERR(kevent);
>                       if (IS_ERR(kevent))
>                               break;

Yeah, that'll probably work, but I'm not sure this the place to be
creative like that though. But whatever the inotify people prefer
really.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to