#include <linux/dcache.h>
#include <linux/fs.h>
#include <linux/fsnotify_backend.h>
#include <linux/inotify.h>
#include <linux/path.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/sched/user.h>
#include <linux/sched/mm.h>
#include "inotify.h"
static bool event_compare(struct fsnotify_event *old_fsn,
struct fsnotify_event *new_fsn)
{ … }
static int inotify_merge(struct fsnotify_group *group,
struct fsnotify_event *event)
{ … }
int inotify_handle_inode_event(struct fsnotify_mark *inode_mark, u32 mask,
struct inode *inode, struct inode *dir,
const struct qstr *name, u32 cookie)
{ … }
static void inotify_freeing_mark(struct fsnotify_mark *fsn_mark, struct fsnotify_group *group)
{ … }
static int idr_callback(int id, void *p, void *data)
{ … }
static void inotify_free_group_priv(struct fsnotify_group *group)
{ … }
static void inotify_free_event(struct fsnotify_group *group,
struct fsnotify_event *fsn_event)
{ … }
static void inotify_free_mark(struct fsnotify_mark *fsn_mark)
{ … }
const struct fsnotify_ops inotify_fsnotify_ops = …;