Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 169746
b: refs/heads/master
c: a66a305
h: refs/heads/master
v: v3
  • Loading branch information
Peter Zijlstra authored and Ingo Molnar committed Nov 23, 2009
1 parent 4a8c1ed commit 40f1640
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a4234bfcf4d72a10a99176cdef007345e9c3b4aa
refs/heads/master: a66a3052e2d4c5815d7ad26887b1d4193206e691
31 changes: 9 additions & 22 deletions trunk/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1704,16 +1704,10 @@ static void free_event(struct perf_event *event)
call_rcu(&event->rcu_head, free_event_rcu);
}

/*
* Called when the last reference to the file is gone.
*/
static int perf_release(struct inode *inode, struct file *file)
int perf_event_release_kernel(struct perf_event *event)
{
struct perf_event *event = file->private_data;
struct perf_event_context *ctx = event->ctx;

file->private_data = NULL;

WARN_ON_ONCE(ctx->parent_ctx);
mutex_lock(&ctx->mutex);
perf_event_remove_from_context(event);
Expand All @@ -1728,26 +1722,19 @@ static int perf_release(struct inode *inode, struct file *file)

return 0;
}
EXPORT_SYMBOL_GPL(perf_event_release_kernel);

int perf_event_release_kernel(struct perf_event *event)
/*
* Called when the last reference to the file is gone.
*/
static int perf_release(struct inode *inode, struct file *file)
{
struct perf_event_context *ctx = event->ctx;

WARN_ON_ONCE(ctx->parent_ctx);
mutex_lock(&ctx->mutex);
perf_event_remove_from_context(event);
mutex_unlock(&ctx->mutex);

mutex_lock(&event->owner->perf_event_mutex);
list_del_init(&event->owner_entry);
mutex_unlock(&event->owner->perf_event_mutex);
put_task_struct(event->owner);
struct perf_event *event = file->private_data;

free_event(event);
file->private_data = NULL;

return 0;
return perf_event_release_kernel(event);
}
EXPORT_SYMBOL_GPL(perf_event_release_kernel);

static int perf_event_read_size(struct perf_event *event)
{
Expand Down

0 comments on commit 40f1640

Please sign in to comment.