xref: /openbmc/linux/include/linux/dnotify.h (revision f4ae4081)
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