aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2009-07-13 15:56:55 -0400
committerEric Paris <eparis@redhat.com>2009-07-21 15:26:26 -0400
commitc05594b62125c528d93af3a78229793aae36df7f (patch)
tree2e9b2ba0ea63d3587cb3c6dc7d72e7a202aade52
parent4a148ba988988b9c400ad0f2cbccc155289b954b (diff)
downloadkernel_samsung_aries-c05594b62125c528d93af3a78229793aae36df7f.zip
kernel_samsung_aries-c05594b62125c528d93af3a78229793aae36df7f.tar.gz
kernel_samsung_aries-c05594b62125c528d93af3a78229793aae36df7f.tar.bz2
fsnotify: fix inotify tail drop check with path entries
fsnotify drops new events when they are the same as the tail event on the queue to be sent to userspace. The problem is that if the event comes with a path we forget to break out of the switch statement and fall into the code path which matches on events that do not have any type of file backed information (things like IN_UNMOUNT and IN_Q_OVERFLOW). The problem is that this code thinks all such events should be dropped. Fix is to add a break. Signed-off-by: Eric Paris <eparis@redhat.com>
-rw-r--r--fs/notify/notification.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/notify/notification.c b/fs/notify/notification.c
index 69391fe..2b20feaf 100644
--- a/fs/notify/notification.c
+++ b/fs/notify/notification.c
@@ -151,6 +151,7 @@ static bool event_compare(struct fsnotify_event *old, struct fsnotify_event *new
if ((old->path.mnt == new->path.mnt) &&
(old->path.dentry == new->path.dentry))
return true;
+ break;
case (FSNOTIFY_EVENT_NONE):
return true;
};