X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-app.c;h=5380450f643a31cce3fa3e2eb1bb8ca994fb20ff;hb=df3f5eb071e2af70de8a207ac41ea3cd5c1d44c3;hp=43caabf933f7ae747b96051ef11efe31f748dd8b;hpb=9fbaebcf83861abd543c148b4ab0042aa374a0e1;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 43caabf93..5380450f6 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -645,7 +645,7 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess, ret = ustctl_create_event(app->sock, &ua_event->attr, ua_chan->obj, &ua_event->obj); if (ret < 0) { - if (ret == -EEXIST) { + if (ret == -EEXIST || ret == -EPERM) { ret = 0; goto error; } @@ -894,8 +894,9 @@ static struct ust_app_session *create_ust_app_session( if (ret < 0) { ERR("Creating session for app pid %d", app->pid); /* This means that the tracer is gone... */ + delete_ust_app_session(-1, ua_sess); ua_sess = (void*) -1UL; - goto error; + goto end; } ua_sess->handle = ret; @@ -909,10 +910,6 @@ static struct ust_app_session *create_ust_app_session( end: return ua_sess; - -error: - delete_ust_app_session(-1, ua_sess); - return NULL; } /* @@ -2307,7 +2304,7 @@ void ust_app_global_update(struct ltt_ust_session *usess, int sock) } ua_sess = create_ust_app_session(usess, app); - if (ua_sess == NULL) { + if (ua_sess == NULL || ua_sess == (void *) -1UL) { goto error; }