fsnotify: allow groups to set freeing_mark to null
authorEric Paris <eparis@redhat.com>
Thu, 11 Jun 2009 15:09:48 +0000 (11:09 -0400)
committerEric Paris <eparis@redhat.com>
Thu, 11 Jun 2009 18:57:55 +0000 (14:57 -0400)
Most fsnotify listeners (all but inotify) do not care about marks being
freed.  Allow groups to set freeing_mark to null and do not call any
function if it is set that way.

Signed-off-by: Eric Paris <eparis@redhat.com>
fs/notify/dnotify/dnotify.c
fs/notify/inode_mark.c

index 98a7516..828a889 100644 (file)
@@ -161,12 +161,6 @@ static bool dnotify_should_send_event(struct fsnotify_group *group,
        return send;
 }
 
-static void dnotify_freeing_mark(struct fsnotify_mark_entry *entry,
-                                struct fsnotify_group *group)
-{
-       /* dnotify doesn't care than an inode is on the way out */
-}
-
 static void dnotify_free_mark(struct fsnotify_mark_entry *entry)
 {
        struct dnotify_mark_entry *dnentry = container_of(entry,
@@ -182,7 +176,7 @@ static struct fsnotify_ops dnotify_fsnotify_ops = {
        .handle_event = dnotify_handle_event,
        .should_send_event = dnotify_should_send_event,
        .free_group_priv = NULL,
-       .freeing_mark = dnotify_freeing_mark,
+       .freeing_mark = NULL,
        .free_event_priv = NULL,
 };
 
index 0a499d2..c8a07c6 100644 (file)
@@ -190,7 +190,8 @@ void fsnotify_destroy_mark_by_entry(struct fsnotify_mark_entry *entry)
         * callback to the group function to let it know that this entry
         * is being freed.
         */
-       group->ops->freeing_mark(entry, group);
+       if (group->ops->freeing_mark)
+               group->ops->freeing_mark(entry, group);
 
        /*
         * __fsnotify_update_child_dentry_flags(inode);