31 lines
914 B
C
31 lines
914 B
C
#include <linux/fsnotify_backend.h>
|
|
#include <linux/path.h>
|
|
#include <linux/slab.h>
|
|
|
|
extern struct kmem_cache *fanotify_event_cachep;
|
|
|
|
/*
|
|
* Lifetime of the structure differs for normal and permission events. In both
|
|
* cases the structure is allocated in fanotify_handle_event(). For normal
|
|
* events the structure is freed immediately after reporting it to userspace.
|
|
* For permission events we free it only after we receive response from
|
|
* userspace.
|
|
*/
|
|
struct fanotify_event_info {
|
|
struct fsnotify_event fse;
|
|
/*
|
|
* We hold ref to this path so it may be dereferenced at any point
|
|
* during this object's lifetime
|
|
*/
|
|
struct path path;
|
|
struct pid *tgid;
|
|
#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
|
|
u32 response; /* userspace answer to question */
|
|
#endif
|
|
};
|
|
|
|
static inline struct fanotify_event_info *FANOTIFY_E(struct fsnotify_event *fse)
|
|
{
|
|
return container_of(fse, struct fanotify_event_info, fse);
|
|
}
|