Showing error 959

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: fs/inotify_user.c
Line in file: 468
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-03-02 21:35:17 UTC


Source:

438
439        start = buf;
440        dev = file->private_data;
441
442        while (1) {
443
444                prepare_to_wait(&dev->wq, &wait, TASK_INTERRUPTIBLE);
445
446                mutex_lock(&dev->ev_mutex);
447                if (!list_empty(&dev->events)) {
448                        ret = 0;
449                        break;
450                }
451                mutex_unlock(&dev->ev_mutex);
452
453                if (file->f_flags & O_NONBLOCK) {
454                        ret = -EAGAIN;
455                        break;
456                }
457
458                if (signal_pending(current)) {
459                        ret = -EINTR;
460                        break;
461                }
462
463                schedule();
464        }
465
466        finish_wait(&dev->wq, &wait);
467        if (ret)
468                return ret;
469
470        while (1) {
471                struct inotify_kernel_event *kevent;
472
473                ret = buf - start;
474                if (list_empty(&dev->events))
475                        break;
476
477                kevent = inotify_dev_get_event(dev);
478                if (event_size + kevent->event.len > count) {
Show full sources