11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _LINUX_DNOTIFY_H 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _LINUX_DNOTIFY_H 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Directory notification for Linux 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2000,2002 Stephen Rothwell 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/fs.h> 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct dnotify_struct { 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct dnotify_struct * dn_next; 133c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris __u32 dn_mask; 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int dn_fd; 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct file * dn_filp; 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fl_owner_t dn_owner; 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifdef __KERNEL__ 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifdef CONFIG_DNOTIFY 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 243c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris#define DNOTIFY_ALL_EVENTS (FS_DELETE | FS_DELETE_CHILD |\ 253c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris FS_MODIFY | FS_MODIFY_CHILD |\ 263c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris FS_ACCESS | FS_ACCESS_CHILD |\ 273c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris FS_ATTRIB | FS_ATTRIB_CHILD |\ 283c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris FS_CREATE | FS_DN_RENAME |\ 293c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris FS_MOVED_FROM | FS_MOVED_TO) 303c5119c05d624f95f4967d16b38c9624b816bdb9Eric Paris 316e006701ccc1590500186ef21e074bd900c5dd67Alexey Dobriyanextern int dir_notify_enable; 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void dnotify_flush(struct file *, fl_owner_t); 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern int fcntl_dirnotify(int, struct file *, unsigned long); 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#else 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstatic inline void dnotify_flush(struct file *filp, fl_owner_t id) 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstatic inline int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg) 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds return -EINVAL; 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* CONFIG_DNOTIFY */ 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* __KERNEL __ */ 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* _LINUX_DNOTIFY_H */ 51