1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds #ifndef _LINUX_DNOTIFY_H
31da177e4SLinus Torvalds #define _LINUX_DNOTIFY_H
41da177e4SLinus Torvalds /*
51da177e4SLinus Torvalds * Directory notification for Linux
61da177e4SLinus Torvalds *
71da177e4SLinus Torvalds * Copyright (C) 2000,2002 Stephen Rothwell
81da177e4SLinus Torvalds */
91da177e4SLinus Torvalds
101da177e4SLinus Torvalds #include <linux/fs.h>
111da177e4SLinus Torvalds
121da177e4SLinus Torvalds struct dnotify_struct {
131da177e4SLinus Torvalds struct dnotify_struct * dn_next;
143c5119c0SEric Paris __u32 dn_mask;
151da177e4SLinus Torvalds int dn_fd;
161da177e4SLinus Torvalds struct file * dn_filp;
171da177e4SLinus Torvalds fl_owner_t dn_owner;
181da177e4SLinus Torvalds };
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds #ifdef __KERNEL__
211da177e4SLinus Torvalds
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds #ifdef CONFIG_DNOTIFY
241da177e4SLinus Torvalds
253c5119c0SEric Paris #define DNOTIFY_ALL_EVENTS (FS_DELETE | FS_DELETE_CHILD |\
263c5119c0SEric Paris FS_MODIFY | FS_MODIFY_CHILD |\
273c5119c0SEric Paris FS_ACCESS | FS_ACCESS_CHILD |\
283c5119c0SEric Paris FS_ATTRIB | FS_ATTRIB_CHILD |\
29e54183faSAmir Goldstein FS_CREATE | FS_RENAME |\
303c5119c0SEric Paris FS_MOVED_FROM | FS_MOVED_TO)
313c5119c0SEric Paris
321da177e4SLinus Torvalds extern void dnotify_flush(struct file *, fl_owner_t);
33*f4ae4081SLuca Vizzarro extern int fcntl_dirnotify(int, struct file *, unsigned int);
341da177e4SLinus Torvalds
351da177e4SLinus Torvalds #else
361da177e4SLinus Torvalds
dnotify_flush(struct file * filp,fl_owner_t id)371da177e4SLinus Torvalds static inline void dnotify_flush(struct file *filp, fl_owner_t id)
381da177e4SLinus Torvalds {
391da177e4SLinus Torvalds }
401da177e4SLinus Torvalds
fcntl_dirnotify(int fd,struct file * filp,unsigned int arg)41*f4ae4081SLuca Vizzarro static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned int arg)
421da177e4SLinus Torvalds {
431da177e4SLinus Torvalds return -EINVAL;
441da177e4SLinus Torvalds }
451da177e4SLinus Torvalds
461da177e4SLinus Torvalds #endif /* CONFIG_DNOTIFY */
471da177e4SLinus Torvalds
481da177e4SLinus Torvalds #endif /* __KERNEL __ */
491da177e4SLinus Torvalds
501da177e4SLinus Torvalds #endif /* _LINUX_DNOTIFY_H */
51