include/linux/dnotify.h
changeset 0 aa628870c1d3
equal deleted inserted replaced
-1:000000000000 0:aa628870c1d3
       
     1 #ifndef _LINUX_DNOTIFY_H
       
     2 #define _LINUX_DNOTIFY_H
       
     3 /*
       
     4  * Directory notification for Linux
       
     5  *
       
     6  * Copyright (C) 2000,2002 Stephen Rothwell
       
     7  */
       
     8 
       
     9 #include <linux/fs.h>
       
    10 
       
    11 struct dnotify_struct {
       
    12 	struct dnotify_struct *	dn_next;
       
    13 	unsigned long		dn_mask;
       
    14 	int			dn_fd;
       
    15 	struct file *		dn_filp;
       
    16 	fl_owner_t		dn_owner;
       
    17 };
       
    18 
       
    19 #ifdef __KERNEL__
       
    20 
       
    21 
       
    22 #ifdef CONFIG_DNOTIFY
       
    23 
       
    24 extern void __inode_dir_notify(struct inode *, unsigned long);
       
    25 extern void dnotify_flush(struct file *, fl_owner_t);
       
    26 extern int fcntl_dirnotify(int, struct file *, unsigned long);
       
    27 extern void dnotify_parent(struct dentry *, unsigned long);
       
    28 
       
    29 static inline void inode_dir_notify(struct inode *inode, unsigned long event)
       
    30 {
       
    31 	if (inode->i_dnotify_mask & (event))
       
    32 		__inode_dir_notify(inode, event);
       
    33 }
       
    34 
       
    35 #else
       
    36 
       
    37 static inline void __inode_dir_notify(struct inode *inode, unsigned long event)
       
    38 {
       
    39 }
       
    40 
       
    41 static inline void dnotify_flush(struct file *filp, fl_owner_t id)
       
    42 {
       
    43 }
       
    44 
       
    45 static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg)
       
    46 {
       
    47 	return -EINVAL;
       
    48 }
       
    49 
       
    50 static inline void dnotify_parent(struct dentry *dentry, unsigned long event)
       
    51 {
       
    52 }
       
    53 
       
    54 static inline void inode_dir_notify(struct inode *inode, unsigned long event)
       
    55 {
       
    56 }
       
    57 
       
    58 #endif /* CONFIG_DNOTIFY */
       
    59 
       
    60 #endif /* __KERNEL __ */
       
    61 
       
    62 #endif /* _LINUX_DNOTIFY_H */