aboutsummaryrefslogtreecommitdiffstats
path: root/fs/notify/fsnotify.c
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2009-05-21 17:01:47 -0400
committerEric Paris <eparis@redhat.com>2009-06-11 14:57:54 -0400
commit47882c6f51e8ef41fbbe2bbb746a1ea3228dd7ca (patch)
treed3dd3e8d0e4d3e3793f32107077839f787e35fcd /fs/notify/fsnotify.c
parent62ffe5dfba056f7ba81d710fee9f28c58a42fdd6 (diff)
fsnotify: add correlations between events
As part of the standard inotify events it includes a correlation cookie between two dentry move operations. This patch includes the same behaviour in fsnotify events. It is needed so that inotify userspace can be implemented on top of fsnotify. Signed-off-by: Eric Paris <eparis@redhat.com> Acked-by: Al Viro <viro@zeniv.linux.org.uk> Cc: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/notify/fsnotify.c')
-rw-r--r--fs/notify/fsnotify.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index 675129fa9fdd..f11d75f02368 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -115,7 +115,7 @@ void __fsnotify_parent(struct dentry *dentry, __u32 mask)
115 mask |= FS_EVENT_ON_CHILD; 115 mask |= FS_EVENT_ON_CHILD;
116 116
117 fsnotify(p_inode, mask, dentry->d_inode, FSNOTIFY_EVENT_INODE, 117 fsnotify(p_inode, mask, dentry->d_inode, FSNOTIFY_EVENT_INODE,
118 dentry->d_name.name); 118 dentry->d_name.name, 0);
119 dput(parent); 119 dput(parent);
120 } 120 }
121 121
@@ -132,7 +132,7 @@ EXPORT_SYMBOL_GPL(__fsnotify_parent);
132 * out to all of the registered fsnotify_group. Those groups can then use the 132 * out to all of the registered fsnotify_group. Those groups can then use the
133 * notification event in whatever means they feel necessary. 133 * notification event in whatever means they feel necessary.
134 */ 134 */
135void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, const char *file_name) 135void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, const char *file_name, u32 cookie)
136{ 136{
137 struct fsnotify_group *group; 137 struct fsnotify_group *group;
138 struct fsnotify_event *event = NULL; 138 struct fsnotify_event *event = NULL;
@@ -157,7 +157,7 @@ void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, const
157 if (!group->ops->should_send_event(group, to_tell, mask)) 157 if (!group->ops->should_send_event(group, to_tell, mask))
158 continue; 158 continue;
159 if (!event) { 159 if (!event) {
160 event = fsnotify_create_event(to_tell, mask, data, data_is, file_name); 160 event = fsnotify_create_event(to_tell, mask, data, data_is, file_name, cookie);
161 /* shit, we OOM'd and now we can't tell, maybe 161 /* shit, we OOM'd and now we can't tell, maybe
162 * someday someone else will want to do something 162 * someday someone else will want to do something
163 * here */ 163 * here */