aboutsummaryrefslogtreecommitdiffstats
path: root/fs/notify/fanotify
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2010-12-07 15:27:57 -0500
committerEric Paris <eparis@redhat.com>2010-12-15 13:58:18 -0500
commit7d13162332f2b67a941d18cee20f1c0413e020de (patch)
treea9e40f802579e750fbf75e025e9cee7c760ca558 /fs/notify/fanotify
parent62731fa0c893515dc6cbc3e0a2879a92793c735f (diff)
fanotify: fill in the metadata_len field on struct fanotify_event_metadata
The fanotify_event_metadata now has a field which is supposed to indicate the length of the metadata portion of the event. Fill in that field as well. Based-in-part-on-patch-by: Alexey Zaytsev <alexey.zaytsev@gmail.com> Signed-off-by: Eric Paris <eparis@redhat.com>
Diffstat (limited to 'fs/notify/fanotify')
-rw-r--r--fs/notify/fanotify/fanotify_user.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
index dccd7985e65a..8b61220cffc5 100644
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -116,6 +116,7 @@ static int fill_event_metadata(struct fsnotify_group *group,
116 group, metadata, event); 116 group, metadata, event);
117 117
118 metadata->event_len = FAN_EVENT_METADATA_LEN; 118 metadata->event_len = FAN_EVENT_METADATA_LEN;
119 metadata->metadata_len = FAN_EVENT_METADATA_LEN;
119 metadata->vers = FANOTIFY_METADATA_VERSION; 120 metadata->vers = FANOTIFY_METADATA_VERSION;
120 metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS; 121 metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS;
121 metadata->pid = pid_vnr(event->tgid); 122 metadata->pid = pid_vnr(event->tgid);
@@ -275,10 +276,11 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
275 goto out_close_fd; 276 goto out_close_fd;
276 277
277 ret = -EFAULT; 278 ret = -EFAULT;
278 if (copy_to_user(buf, &fanotify_event_metadata, FAN_EVENT_METADATA_LEN)) 279 if (copy_to_user(buf, &fanotify_event_metadata,
280 fanotify_event_metadata.event_len))
279 goto out_kill_access_response; 281 goto out_kill_access_response;
280 282
281 return FAN_EVENT_METADATA_LEN; 283 return fanotify_event_metadata.event_len;
282 284
283out_kill_access_response: 285out_kill_access_response:
284 remove_access_response(group, event, fd); 286 remove_access_response(group, event, fd);