X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-context-pid.c;h=698b242245a28b6e38484f65f21f129e53ab9774;hb=c595c36f753dde1bccbee455bbfeb8b31b7f41d1;hp=956920fd71709104ff84e071ef82fec57c36e37e;hpb=becb1a77f72c28357fc6509c1ec25dc8d4804b2c;p=lttng-modules.git diff --git a/lttng-context-pid.c b/lttng-context-pid.c index 956920fd..698b2422 100644 --- a/lttng-context-pid.c +++ b/lttng-context-pid.c @@ -32,7 +32,7 @@ void pid_record(struct lttng_ctx_field *field, { pid_t pid; - pid = current->pid; + pid = task_tgid_nr(current); lib_ring_buffer_align_ctx(ctx, ltt_alignof(pid)); chan->ops->event_write(ctx, &pid, sizeof(pid)); } @@ -40,11 +40,14 @@ void pid_record(struct lttng_ctx_field *field, int lttng_add_pid_to_ctx(struct lttng_ctx **ctx) { struct lttng_ctx_field *field; - int ret; field = lttng_append_context(ctx); if (!field) - return ret; + return -ENOMEM; + if (lttng_find_context(*ctx, "pid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } field->event_field.name = "pid"; field->event_field.type.atype = atype_integer; field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; @@ -62,4 +65,4 @@ EXPORT_SYMBOL_GPL(lttng_add_pid_to_ctx); MODULE_LICENSE("GPL and additional rights"); MODULE_AUTHOR("Mathieu Desnoyers"); -MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support"); +MODULE_DESCRIPTION("Linux Trace Toolkit PID Context");