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 12struct 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_DN_RENAME |\ 30 FS_MOVED_FROM | FS_MOVED_TO) 31 32extern int dir_notify_enable; 33extern void dnotify_flush(struct file *, fl_owner_t); 34extern int fcntl_dirnotify(int, struct file *, unsigned long); 35 36#else 37 38static inline void dnotify_flush(struct file *filp, fl_owner_t id) 39{ 40} 41 42static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg) 43{ 44 return -EINVAL; 45} 46 47#endif /* CONFIG_DNOTIFY */ 48 49#endif /* __KERNEL __ */ 50 51#endif /* _LINUX_DNOTIFY_H */ 52