aboutsummaryrefslogtreecommitdiffstats
path: root/fs/notify/notification.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-09-04 02:22:21 -0700
committerDavid S. Miller <davem@davemloft.net>2009-09-04 02:22:21 -0700
commita29889a5369d2604c2053bcd051519a2445d8a70 (patch)
treeb17e8258894d079b4168994d9438ba7d6e7d1523 /fs/notify/notification.c
parente7a088f935180b90cfe6ab0aaae8a556f46885fe (diff)
parent37d0892c5a94e208cf863e3b7bac014edee4346d (diff)
downloadkernel_samsung_tuna-a29889a5369d2604c2053bcd051519a2445d8a70.zip
kernel_samsung_tuna-a29889a5369d2604c2053bcd051519a2445d8a70.tar.gz
kernel_samsung_tuna-a29889a5369d2604c2053bcd051519a2445d8a70.tar.bz2
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'fs/notify/notification.c')
-rw-r--r--fs/notify/notification.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/notify/notification.c b/fs/notify/notification.c
index 5213685..3816d57 100644
--- a/fs/notify/notification.c
+++ b/fs/notify/notification.c
@@ -153,6 +153,10 @@ static bool event_compare(struct fsnotify_event *old, struct fsnotify_event *new
return true;
break;
case (FSNOTIFY_EVENT_NONE):
+ if (old->mask & FS_Q_OVERFLOW)
+ return true;
+ else if (old->mask & FS_IN_IGNORED)
+ return false;
return false;
};
}
@@ -171,9 +175,7 @@ int fsnotify_add_notify_event(struct fsnotify_group *group, struct fsnotify_even
struct list_head *list = &group->notification_list;
struct fsnotify_event_holder *last_holder;
struct fsnotify_event *last_event;
-
- /* easy to tell if priv was attached to the event */
- INIT_LIST_HEAD(&priv->event_list);
+ int ret = 0;
/*
* There is one fsnotify_event_holder embedded inside each fsnotify_event.
@@ -194,6 +196,7 @@ alloc_holder:
if (group->q_len >= group->max_events) {
event = &q_overflow_event;
+ ret = -EOVERFLOW;
/* sorry, no private data on the overflow event */
priv = NULL;
}
@@ -235,7 +238,7 @@ alloc_holder:
mutex_unlock(&group->notification_mutex);
wake_up(&group->notification_waitq);
- return 0;
+ return ret;
}
/*