X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsession.c;h=13abe424c3b1c4472034fbd6be4473c3570abff4;hb=2a09e9fb3029858cd04ce36471bc4a9c9d7b6624;hp=97fc94fe535f939e8e46b17ff4005fe7e6141ab8;hpb=db7586006bc1a2b9057a2c108bf1e7d20fd6903f;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/session.c b/src/bin/lttng-sessiond/session.c index 97fc94fe5..13abe424c 100644 --- a/src/bin/lttng-sessiond/session.c +++ b/src/bin/lttng-sessiond/session.c @@ -1,19 +1,18 @@ /* * Copyright (C) 2011 - David Goulet * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; only version 2 - * of the License. + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2 only, + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #define _GNU_SOURCE @@ -22,7 +21,6 @@ #include #include #include -#include #include #include @@ -56,7 +54,7 @@ static struct ltt_session_list ltt_session_list = { * The caller MUST acquire the session list lock before. * Returns the unique identifier for the session. */ -static int add_session_list(struct ltt_session *ls) +static unsigned int add_session_list(struct ltt_session *ls) { cds_list_add(&ls->list, <t_session_list.head); return ++ltt_session_list.count; @@ -66,14 +64,12 @@ static int add_session_list(struct ltt_session *ls) * Delete a ltt_session structure to the global list. * * The caller MUST acquire the session list lock before. + * The session list count CANNOT be decremented, as it is used as unique + * identifier for the session in UST app hash table lookups. */ static void del_session_list(struct ltt_session *ls) { cds_list_del(&ls->list); - /* Sanity check */ - if (ltt_session_list.count > 0) { - ltt_session_list.count--; - } } /* @@ -177,7 +173,7 @@ int session_create(char *name, char *path, uid_t uid, gid_t gid) /* Allocate session data structure */ new_session = zmalloc(sizeof(struct ltt_session)); if (new_session == NULL) { - perror("zmalloc"); + PERROR("zmalloc"); ret = LTTCOMM_FATAL; goto error_malloc; } @@ -221,7 +217,7 @@ int session_create(char *name, char *path, uid_t uid, gid_t gid) if (ret < 0) { if (ret != -EEXIST) { ERR("Trace directory creation error"); - ret = LTTCOMM_CREATE_FAIL; + ret = LTTCOMM_CREATE_DIR_FAIL; goto error; } } @@ -231,7 +227,7 @@ int session_create(char *name, char *path, uid_t uid, gid_t gid) new_session->id = add_session_list(new_session); session_unlock_list(); - DBG("Tracing session %s created in %s with ID %d by UID %d GID %d", + DBG("Tracing session %s created in %s with ID %u by UID %d GID %d", name, path, new_session->id, new_session->uid, new_session->gid);