eventfs/tracing: Add callback for release of an eventfs_inode
[linux-2.6-block.git] / kernel / trace / trace_events.c
index 52f75c36bbca4922bec786815bb70ff409f62a61..6ef29eba90ceb7e06774171d79c7ea244ecaa72a 100644 (file)
@@ -2552,6 +2552,14 @@ static int event_callback(const char *name, umode_t *mode, void **data,
        return 0;
 }
 
+/* The file is incremented on creation and freeing the enable file decrements it */
+static void event_release(const char *name, void *data)
+{
+       struct trace_event_file *file = data;
+
+       event_file_put(file);
+}
+
 static int
 event_create_dir(struct eventfs_inode *parent, struct trace_event_file *file)
 {
@@ -2566,6 +2574,7 @@ event_create_dir(struct eventfs_inode *parent, struct trace_event_file *file)
                {
                        .name           = "enable",
                        .callback       = event_callback,
+                       .release        = event_release,
                },
                {
                        .name           = "filter",
@@ -2634,6 +2643,9 @@ event_create_dir(struct eventfs_inode *parent, struct trace_event_file *file)
                return ret;
        }
 
+       /* Gets decremented on freeing of the "enable" file */
+       event_file_get(file);
+
        return 0;
 }