diff options
Diffstat (limited to 'include/linux/dnotify.h')
-rw-r--r-- | include/linux/dnotify.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/include/linux/dnotify.h b/include/linux/dnotify.h new file mode 100644 index 0000000..f134a01 --- /dev/null +++ b/include/linux/dnotify.h @@ -0,0 +1,63 @@ +#ifndef _LINUX_DNOTIFY_H +#define _LINUX_DNOTIFY_H +/* + * Directory notification for Linux + * + * Copyright (C) 2000,2002 Stephen Rothwell + */ + +#include <linux/fs.h> + +struct dnotify_struct { + struct dnotify_struct * dn_next; + unsigned long dn_mask; + int dn_fd; + struct file * dn_filp; + fl_owner_t dn_owner; +}; + +#ifdef __KERNEL__ + +#include <linux/config.h> + +#ifdef CONFIG_DNOTIFY + +extern void __inode_dir_notify(struct inode *, unsigned long); +extern void dnotify_flush(struct file *, fl_owner_t); +extern int fcntl_dirnotify(int, struct file *, unsigned long); +extern void dnotify_parent(struct dentry *, unsigned long); + +static inline void inode_dir_notify(struct inode *inode, unsigned long event) +{ + if (inode->i_dnotify_mask & (event)) + __inode_dir_notify(inode, event); +} + +#else + +static inline void __inode_dir_notify(struct inode *inode, unsigned long event) +{ +} + +static inline void dnotify_flush(struct file *filp, fl_owner_t id) +{ +} + +static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg) +{ + return -EINVAL; +} + +static inline void dnotify_parent(struct dentry *dentry, unsigned long event) +{ +} + +static inline void inode_dir_notify(struct inode *inode, unsigned long event) +{ +} + +#endif /* CONFIG_DNOTIFY */ + +#endif /* __KERNEL __ */ + +#endif /* _LINUX_DNOTIFY_H */ |