diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/notify/fanotify/fanotify.c | 6 | ||||
-rw-r--r-- | fs/notify/inotify/inotify_fsnotify.c | 6 | ||||
-rw-r--r-- | fs/notify/inotify/inotify_user.c | 2 | ||||
-rw-r--r-- | fs/notify/notification.c | 7 |
4 files changed, 14 insertions, 7 deletions
diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c index 060b177146e8..95a330d2f8a1 100644 --- a/fs/notify/fanotify/fanotify.c +++ b/fs/notify/fanotify/fanotify.c | |||
@@ -27,7 +27,9 @@ static bool should_merge(struct fsnotify_event *old, struct fsnotify_event *new) | |||
27 | return false; | 27 | return false; |
28 | } | 28 | } |
29 | 29 | ||
30 | static int fanotify_merge(struct list_head *list, struct fsnotify_event *event) | 30 | static int fanotify_merge(struct list_head *list, |
31 | struct fsnotify_event *event, | ||
32 | void **arg) | ||
31 | { | 33 | { |
32 | struct fsnotify_event_holder *test_holder; | 34 | struct fsnotify_event_holder *test_holder; |
33 | struct fsnotify_event *test_event; | 35 | struct fsnotify_event *test_event; |
@@ -92,7 +94,7 @@ static int fanotify_handle_event(struct fsnotify_group *group, struct fsnotify_e | |||
92 | 94 | ||
93 | pr_debug("%s: group=%p event=%p\n", __func__, group, event); | 95 | pr_debug("%s: group=%p event=%p\n", __func__, group, event); |
94 | 96 | ||
95 | ret = fsnotify_add_notify_event(group, event, NULL, fanotify_merge); | 97 | ret = fsnotify_add_notify_event(group, event, NULL, fanotify_merge, NULL); |
96 | /* -EEXIST means this event was merged with another, not that it was an error */ | 98 | /* -EEXIST means this event was merged with another, not that it was an error */ |
97 | if (ret == -EEXIST) | 99 | if (ret == -EEXIST) |
98 | ret = 0; | 100 | ret = 0; |
diff --git a/fs/notify/inotify/inotify_fsnotify.c b/fs/notify/inotify/inotify_fsnotify.c index 1d237e1bf7b1..daa666a6e6c9 100644 --- a/fs/notify/inotify/inotify_fsnotify.c +++ b/fs/notify/inotify/inotify_fsnotify.c | |||
@@ -67,7 +67,9 @@ static bool event_compare(struct fsnotify_event *old, struct fsnotify_event *new | |||
67 | return false; | 67 | return false; |
68 | } | 68 | } |
69 | 69 | ||
70 | static int inotify_merge(struct list_head *list, struct fsnotify_event *event) | 70 | static int inotify_merge(struct list_head *list, |
71 | struct fsnotify_event *event, | ||
72 | void **arg) | ||
71 | { | 73 | { |
72 | struct fsnotify_event_holder *last_holder; | 74 | struct fsnotify_event_holder *last_holder; |
73 | struct fsnotify_event *last_event; | 75 | struct fsnotify_event *last_event; |
@@ -114,7 +116,7 @@ static int inotify_handle_event(struct fsnotify_group *group, struct fsnotify_ev | |||
114 | fsn_event_priv->group = group; | 116 | fsn_event_priv->group = group; |
115 | event_priv->wd = wd; | 117 | event_priv->wd = wd; |
116 | 118 | ||
117 | ret = fsnotify_add_notify_event(group, event, fsn_event_priv, inotify_merge); | 119 | ret = fsnotify_add_notify_event(group, event, fsn_event_priv, inotify_merge, NULL); |
118 | if (ret) { | 120 | if (ret) { |
119 | inotify_free_event_priv(fsn_event_priv); | 121 | inotify_free_event_priv(fsn_event_priv); |
120 | /* EEXIST says we tail matched, EOVERFLOW isn't something | 122 | /* EEXIST says we tail matched, EOVERFLOW isn't something |
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c index 19d274057bfa..1ce71f5b9589 100644 --- a/fs/notify/inotify/inotify_user.c +++ b/fs/notify/inotify/inotify_user.c | |||
@@ -525,7 +525,7 @@ void inotify_ignored_and_remove_idr(struct fsnotify_mark *fsn_mark, | |||
525 | fsn_event_priv->group = group; | 525 | fsn_event_priv->group = group; |
526 | event_priv->wd = i_mark->wd; | 526 | event_priv->wd = i_mark->wd; |
527 | 527 | ||
528 | ret = fsnotify_add_notify_event(group, ignored_event, fsn_event_priv, NULL); | 528 | ret = fsnotify_add_notify_event(group, ignored_event, fsn_event_priv, NULL, NULL); |
529 | if (ret) | 529 | if (ret) |
530 | inotify_free_event_priv(fsn_event_priv); | 530 | inotify_free_event_priv(fsn_event_priv); |
531 | 531 | ||
diff --git a/fs/notify/notification.c b/fs/notify/notification.c index 7fc8d004084c..2d50a40ab1e4 100644 --- a/fs/notify/notification.c +++ b/fs/notify/notification.c | |||
@@ -137,7 +137,10 @@ struct fsnotify_event_private_data *fsnotify_remove_priv_from_event(struct fsnot | |||
137 | */ | 137 | */ |
138 | int fsnotify_add_notify_event(struct fsnotify_group *group, struct fsnotify_event *event, | 138 | int fsnotify_add_notify_event(struct fsnotify_group *group, struct fsnotify_event *event, |
139 | struct fsnotify_event_private_data *priv, | 139 | struct fsnotify_event_private_data *priv, |
140 | int (*merge)(struct list_head *, struct fsnotify_event *)) | 140 | int (*merge)(struct list_head *, |
141 | struct fsnotify_event *, | ||
142 | void **arg), | ||
143 | void **arg) | ||
141 | { | 144 | { |
142 | struct fsnotify_event_holder *holder = NULL; | 145 | struct fsnotify_event_holder *holder = NULL; |
143 | struct list_head *list = &group->notification_list; | 146 | struct list_head *list = &group->notification_list; |
@@ -170,7 +173,7 @@ alloc_holder: | |||
170 | if (!list_empty(list) && merge) { | 173 | if (!list_empty(list) && merge) { |
171 | int ret; | 174 | int ret; |
172 | 175 | ||
173 | ret = merge(list, event); | 176 | ret = merge(list, event, arg); |
174 | if (ret) { | 177 | if (ret) { |
175 | mutex_unlock(&group->notification_mutex); | 178 | mutex_unlock(&group->notification_mutex); |
176 | if (holder != &event->holder) | 179 | if (holder != &event->holder) |