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 | |
37 | static inline void dnotify_flush(struct file *filp, fl_owner_t id) |
38 | { |
39 | } |
40 | |
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 | |