xref: /openbmc/linux/include/linux/dnotify.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1  /* SPDX-License-Identifier: GPL-2.0 */
2  #ifndef _LINUX_DNOTIFY_H
3  #define _LINUX_DNOTIFY_H
4  /*
5   * Directory notification for Linux
6   *
7   * Copyright (C) 2000,2002 Stephen Rothwell
8   */
9  
10  #include <linux/fs.h>
11  
12  struct dnotify_struct {
13  	struct dnotify_struct *	dn_next;
14  	__u32			dn_mask;
15  	int			dn_fd;
16  	struct file *		dn_filp;
17  	fl_owner_t		dn_owner;
18  };
19  
20  #ifdef __KERNEL__
21  
22  
23  #ifdef CONFIG_DNOTIFY
24  
25  #define DNOTIFY_ALL_EVENTS (FS_DELETE | FS_DELETE_CHILD |\
26  			    FS_MODIFY | FS_MODIFY_CHILD |\
27  			    FS_ACCESS | FS_ACCESS_CHILD |\
28  			    FS_ATTRIB | FS_ATTRIB_CHILD |\
29  			    FS_CREATE | FS_RENAME |\
30  			    FS_MOVED_FROM | FS_MOVED_TO)
31  
32  extern void dnotify_flush(struct file *, fl_owner_t);
33  extern int fcntl_dirnotify(int, struct file *, unsigned int);
34  
35  #else
36  
dnotify_flush(struct file * filp,fl_owner_t id)37  static inline void dnotify_flush(struct file *filp, fl_owner_t id)
38  {
39  }
40  
fcntl_dirnotify(int fd,struct file * filp,unsigned int arg)41  static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned int arg)
42  {
43  	return -EINVAL;
44  }
45  
46  #endif /* CONFIG_DNOTIFY */
47  
48  #endif /* __KERNEL __ */
49  
50  #endif /* _LINUX_DNOTIFY_H */
51