- while (fscanf(fp, "process { pid = %u; };\n", &pid) == 1) {
- if (count >= nbmem) {
- int *new_pids;
- size_t new_nbmem;
-
- new_nbmem = nbmem << 1;
- DBG("Reallocating pids list from %zu to %zu entries",
- nbmem, new_nbmem);
- new_pids = realloc(pids, new_nbmem * sizeof(*new_pids));
- if (new_pids == NULL) {
- PERROR("realloc list events");
- free(pids);
- count = -ENOMEM;
- goto end;
- }
- /* Zero the new memory */
- memset(new_pids + nbmem, 0,
- (new_nbmem - nbmem) * sizeof(*new_pids));
- nbmem = new_nbmem;
- pids = new_pids;
+ switch (tracker_type) {
+ case LTTNG_TRACKER_PID:
+ DBG("Kernel untrack PID %d for session id %" PRIu64 ".", value,
+ session->id);
+ ret = kernctl_untrack_pid(session->fd, value);
+ if (!ret) {
+ ret = LTTNG_OK;
+ goto end;
+ }
+ break;
+ case LTTNG_TRACKER_VPID:
+ DBG("Kernel untrack VPID %d for session id %" PRIu64 ".", value,
+ session->id);
+ ret = kernctl_untrack_id(
+ session->fd, LTTNG_TRACKER_VPID, value);
+ if (!ret) {
+ ret = LTTNG_OK;
+ goto end;
+ }
+ break;
+ case LTTNG_TRACKER_UID:
+ DBG("Kernel untrack UID %d for session id %" PRIu64 ".", value,
+ session->id);
+ ret = kernctl_untrack_id(session->fd, LTTNG_TRACKER_UID, value);
+ if (!ret) {
+ ret = LTTNG_OK;
+ goto end;
+ }
+ break;
+ case LTTNG_TRACKER_GID:
+ DBG("Kernel untrack GID %d for session id %" PRIu64 ".", value,
+ session->id);
+ ret = kernctl_untrack_id(session->fd, LTTNG_TRACKER_GID, value);
+ if (!ret) {
+ ret = LTTNG_OK;
+ goto end;
+ }
+ break;
+ case LTTNG_TRACKER_VUID:
+ DBG("Kernel untrack VUID %d for session id %" PRIu64 ".", value,
+ session->id);
+ ret = kernctl_untrack_id(
+ session->fd, LTTNG_TRACKER_VUID, value);
+ if (!ret) {
+ ret = LTTNG_OK;
+ goto end;
+ }
+ break;
+ case LTTNG_TRACKER_VGID:
+ DBG("Kernel untrack VGID %d for session id %" PRIu64 ".", value,
+ session->id);
+ ret = kernctl_untrack_id(
+ session->fd, LTTNG_TRACKER_VGID, value);
+ if (!ret) {
+ ret = LTTNG_OK;
+ goto end;