Line data Source code
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_DN_RENAME |\ 30 : FS_MOVED_FROM | FS_MOVED_TO) 31 : 32 : extern int dir_notify_enable; 33 : extern void dnotify_flush(struct file *, fl_owner_t); 34 : extern int fcntl_dirnotify(int, struct file *, unsigned long); 35 : 36 : #else 37 : 38 27717 : static inline void dnotify_flush(struct file *filp, fl_owner_t id) 39 : { 40 27717 : } 41 : 42 : static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg) 43 : { 44 : return -EINVAL; 45 : } 46 : 47 : #endif /* CONFIG_DNOTIFY */ 48 : 49 : #endif /* __KERNEL __ */ 50 : 51 : #endif /* _LINUX_DNOTIFY_H */