LCOV - code coverage report
Current view: top level - fs/notify/inotify - inotify.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 9 0.0 %
Date: 2023-03-27 20:00:47 Functions: 0 0 -

          Line data    Source code
       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             :         u32 mask;
       9             :         int wd;
      10             :         u32 sync_cookie;
      11             :         int name_len;
      12             :         char name[];
      13             : };
      14             : 
      15             : struct inotify_inode_mark {
      16             :         struct fsnotify_mark fsn_mark;
      17             :         int wd;
      18             : };
      19             : 
      20             : static inline struct inotify_event_info *INOTIFY_E(struct fsnotify_event *fse)
      21             : {
      22           0 :         return container_of(fse, struct inotify_event_info, fse);
      23             : }
      24             : 
      25             : /*
      26             :  * INOTIFY_USER_FLAGS represents all of the mask bits that we expose to
      27             :  * userspace.  There is at least one bit (FS_EVENT_ON_CHILD) which is
      28             :  * used only internally to the kernel.
      29             :  */
      30             : #define INOTIFY_USER_MASK (IN_ALL_EVENTS)
      31             : 
      32             : static inline __u32 inotify_mark_user_mask(struct fsnotify_mark *fsn_mark)
      33             : {
      34           0 :         __u32 mask = fsn_mark->mask & INOTIFY_USER_MASK;
      35             : 
      36           0 :         if (fsn_mark->flags & FSNOTIFY_MARK_FLAG_EXCL_UNLINK)
      37           0 :                 mask |= IN_EXCL_UNLINK;
      38           0 :         if (fsn_mark->flags & FSNOTIFY_MARK_FLAG_IN_ONESHOT)
      39           0 :                 mask |= IN_ONESHOT;
      40             : 
      41             :         return mask;
      42             : }
      43             : 
      44             : extern void inotify_ignored_and_remove_idr(struct fsnotify_mark *fsn_mark,
      45             :                                            struct fsnotify_group *group);
      46             : extern int inotify_handle_inode_event(struct fsnotify_mark *inode_mark,
      47             :                                       u32 mask, struct inode *inode,
      48             :                                       struct inode *dir,
      49             :                                       const struct qstr *name, u32 cookie);
      50             : 
      51             : extern const struct fsnotify_ops inotify_fsnotify_ops;
      52             : extern struct kmem_cache *inotify_inode_mark_cachep;
      53             : 
      54             : #ifdef CONFIG_INOTIFY_USER
      55             : static inline void dec_inotify_instances(struct ucounts *ucounts)
      56             : {
      57           0 :         dec_ucount(ucounts, UCOUNT_INOTIFY_INSTANCES);
      58             : }
      59             : 
      60             : static inline struct ucounts *inc_inotify_watches(struct ucounts *ucounts)
      61             : {
      62           0 :         return inc_ucount(ucounts->ns, ucounts->uid, UCOUNT_INOTIFY_WATCHES);
      63             : }
      64             : 
      65             : static inline void dec_inotify_watches(struct ucounts *ucounts)
      66             : {
      67           0 :         dec_ucount(ucounts, UCOUNT_INOTIFY_WATCHES);
      68             : }
      69             : #endif

Generated by: LCOV version 1.14