[PATCH] new helper - inotify_evict_watch()

Kicks the watch out without dropping it.  Called under ->inotify_mutex

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2007-06-07 12:22:59 -04:00
parent b9efe8a234
commit 455434d450
2 changed files with 9 additions and 0 deletions

View File

@ -701,6 +701,14 @@ s32 inotify_clone_watch(struct inotify_watch *old, struct inotify_watch *new)
return ret; return ret;
} }
void inotify_evict_watch(struct inotify_watch *watch)
{
get_inotify_watch(watch);
mutex_lock(&watch->ih->mutex);
inotify_remove_watch_locked(watch->ih, watch);
mutex_unlock(&watch->ih->mutex);
}
/** /**
* inotify_rm_wd - remove a watch from an inotify instance * inotify_rm_wd - remove a watch from an inotify instance
* @ih: inotify handle * @ih: inotify handle

View File

@ -121,6 +121,7 @@ extern __s32 inotify_find_update_watch(struct inotify_handle *, struct inode *,
extern __s32 inotify_add_watch(struct inotify_handle *, struct inotify_watch *, extern __s32 inotify_add_watch(struct inotify_handle *, struct inotify_watch *,
struct inode *, __u32); struct inode *, __u32);
extern __s32 inotify_clone_watch(struct inotify_watch *, struct inotify_watch *); extern __s32 inotify_clone_watch(struct inotify_watch *, struct inotify_watch *);
extern void inotify_evict_watch(struct inotify_watch *);
extern int inotify_rm_watch(struct inotify_handle *, struct inotify_watch *); extern int inotify_rm_watch(struct inotify_handle *, struct inotify_watch *);
extern int inotify_rm_wd(struct inotify_handle *, __u32); extern int inotify_rm_wd(struct inotify_handle *, __u32);
extern void inotify_remove_watch_locked(struct inotify_handle *, extern void inotify_remove_watch_locked(struct inotify_handle *,