]>
Commit | Line | Data |
---|---|---|
1 | /* SPDX-License-Identifier: GPL-2.0 */ | |
2 | #include <linux/fsnotify_backend.h> | |
3 | #include <linux/inotify.h> | |
4 | #include <linux/slab.h> /* struct kmem_cache */ | |
5 | ||
6 | struct inotify_event_info { | |
7 | struct fsnotify_event fse; | |
8 | int wd; | |
9 | u32 sync_cookie; | |
10 | int name_len; | |
11 | char name[]; | |
12 | }; | |
13 | ||
14 | struct inotify_inode_mark { | |
15 | struct fsnotify_mark fsn_mark; | |
16 | int wd; | |
17 | }; | |
18 | ||
19 | static inline struct inotify_event_info *INOTIFY_E(struct fsnotify_event *fse) | |
20 | { | |
21 | return container_of(fse, struct inotify_event_info, fse); | |
22 | } | |
23 | ||
24 | extern void inotify_ignored_and_remove_idr(struct fsnotify_mark *fsn_mark, | |
25 | struct fsnotify_group *group); | |
26 | extern int inotify_handle_event(struct fsnotify_group *group, | |
27 | struct inode *inode, | |
28 | struct fsnotify_mark *inode_mark, | |
29 | struct fsnotify_mark *vfsmount_mark, | |
30 | u32 mask, const void *data, int data_type, | |
31 | const unsigned char *file_name, u32 cookie, | |
32 | struct fsnotify_iter_info *iter_info); | |
33 | ||
34 | extern const struct fsnotify_ops inotify_fsnotify_ops; | |
35 | extern struct kmem_cache *inotify_inode_mark_cachep; | |
36 | ||
37 | #ifdef CONFIG_INOTIFY_USER | |
38 | static inline void dec_inotify_instances(struct ucounts *ucounts) | |
39 | { | |
40 | dec_ucount(ucounts, UCOUNT_INOTIFY_INSTANCES); | |
41 | } | |
42 | ||
43 | static inline struct ucounts *inc_inotify_watches(struct ucounts *ucounts) | |
44 | { | |
45 | return inc_ucount(ucounts->ns, ucounts->uid, UCOUNT_INOTIFY_WATCHES); | |
46 | } | |
47 | ||
48 | static inline void dec_inotify_watches(struct ucounts *ucounts) | |
49 | { | |
50 | dec_ucount(ucounts, UCOUNT_INOTIFY_WATCHES); | |
51 | } | |
52 | #endif |