X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbin%2Flttng-sessiond%2Fcmd.c;h=f55c772c147aafbcc2a3914d4a49746b848cdafc;hb=1bfe73287bb3776cdba5a76d5a812ef79820bf10;hp=636450782d7a7a4729d332c379a157140cf02a28;hpb=03b4fdcf623dd767bb03bc6d62fa813d360b4269;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index 636450782..f55c772c1 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -2584,7 +2584,7 @@ int cmd_snapshot_record(struct ltt_session *session, int ret = LTTNG_OK; unsigned int use_tmp_output = 0; struct snapshot_output tmp_output; - unsigned int nb_streams; + unsigned int nb_streams, snapshot_success = 0; assert(session); @@ -2618,6 +2618,8 @@ int cmd_snapshot_record(struct ltt_session *session, } goto error; } + /* Use the global session count for the temporary snapshot. */ + tmp_output.nb_snapshot = session->snapshot.nb_snapshot; use_tmp_output = 1; } @@ -2636,6 +2638,7 @@ int cmd_snapshot_record(struct ltt_session *session, if (ret < 0) { goto error; } + snapshot_success = 1; } else { struct snapshot_output *sout; struct lttng_ht_iter iter; @@ -2661,12 +2664,15 @@ int cmd_snapshot_record(struct ltt_session *session, sizeof(tmp_output.name)); } + tmp_output.nb_snapshot = session->snapshot.nb_snapshot; + ret = record_kernel_snapshot(ksess, &tmp_output, session, wait, nb_streams); if (ret < 0) { rcu_read_unlock(); goto error; } + snapshot_success = 1; } rcu_read_unlock(); } @@ -2681,6 +2687,7 @@ int cmd_snapshot_record(struct ltt_session *session, if (ret < 0) { goto error; } + snapshot_success = 1; } else { struct snapshot_output *sout; struct lttng_ht_iter iter; @@ -2708,17 +2715,24 @@ int cmd_snapshot_record(struct ltt_session *session, sizeof(tmp_output.name)); } + tmp_output.nb_snapshot = session->snapshot.nb_snapshot; + ret = record_ust_snapshot(usess, &tmp_output, session, wait, nb_streams); if (ret < 0) { rcu_read_unlock(); goto error; } + snapshot_success = 1; } rcu_read_unlock(); } } + if (snapshot_success) { + session->snapshot.nb_snapshot++; + } + error: return ret; }