diff options
author | Eric Paris <eparis@redhat.com> | 2010-10-28 17:21:56 -0400 |
---|---|---|
committer | Eric Paris <eparis@redhat.com> | 2010-10-28 17:22:13 -0400 |
commit | 52420392c81c8712f555e6bcd116d8bd214ce43a (patch) | |
tree | 372d23bba71ee687ff5adf5b83d3fd0706e19927 /include/linux/fsnotify_backend.h | |
parent | ff8bcbd03da881bf1171910c6c07d44bd3c0a234 (diff) |
fsnotify: call fsnotify_parent in perm events
fsnotify perm events do not call fsnotify parent. That means you cannot
register a perm event on a directory and enforce permissions on all inodes in
that directory. This patch fixes that situation.
Signed-off-by: Eric Paris <eparis@redhat.com>
Diffstat (limited to 'include/linux/fsnotify_backend.h')
-rw-r--r-- | include/linux/fsnotify_backend.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h index 026892187c83..b37f3a71a9dc 100644 --- a/include/linux/fsnotify_backend.h +++ b/include/linux/fsnotify_backend.h | |||
@@ -304,7 +304,7 @@ struct fsnotify_mark { | |||
304 | /* main fsnotify call to send events */ | 304 | /* main fsnotify call to send events */ |
305 | extern int fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, | 305 | extern int fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, |
306 | const unsigned char *name, u32 cookie); | 306 | const unsigned char *name, u32 cookie); |
307 | extern void __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask); | 307 | extern int __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask); |
308 | extern void __fsnotify_inode_delete(struct inode *inode); | 308 | extern void __fsnotify_inode_delete(struct inode *inode); |
309 | extern void __fsnotify_vfsmount_delete(struct vfsmount *mnt); | 309 | extern void __fsnotify_vfsmount_delete(struct vfsmount *mnt); |
310 | extern u32 fsnotify_get_cookie(void); | 310 | extern u32 fsnotify_get_cookie(void); |
@@ -433,8 +433,10 @@ static inline int fsnotify(struct inode *to_tell, __u32 mask, void *data, int da | |||
433 | return 0; | 433 | return 0; |
434 | } | 434 | } |
435 | 435 | ||
436 | static inline void __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask) | 436 | static inline int __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask) |
437 | {} | 437 | { |
438 | return 0; | ||
439 | } | ||
438 | 440 | ||
439 | static inline void __fsnotify_inode_delete(struct inode *inode) | 441 | static inline void __fsnotify_inode_delete(struct inode *inode) |
440 | {} | 442 | {} |