struct lttng_ht_iter iter;
cds_lfht_lookup(session->enums->ht,
- ht_hash_enum((void *) ®_enum_lookup, lttng_ht_seed),
- ht_match_enum, ®_enum_lookup, &iter.iter);
+ ht_hash_enum((void *) reg_enum_lookup, lttng_ht_seed),
+ ht_match_enum, reg_enum_lookup, &iter.iter);
node = lttng_ht_iter_get_node_str(&iter);
if (!node) {
goto end;
}
}
- rcu_read_lock();
- /* Destroy all event associated with this registry. */
- cds_lfht_for_each_entry(chan->ht->ht, &iter.iter, event, node.node) {
- /* Delete the node from the ht and free it. */
- ust_registry_destroy_event(chan, event);
+ if (chan->ht) {
+ rcu_read_lock();
+ /* Destroy all event associated with this registry. */
+ cds_lfht_for_each_entry(
+ chan->ht->ht, &iter.iter, event, node.node) {
+ /* Delete the node from the ht and free it. */
+ ust_registry_destroy_event(chan, event);
+ }
+ rcu_read_unlock();
}
- rcu_read_unlock();
call_rcu(&chan->rcu_head, destroy_channel_rcu);
}
const char *root_shm_path,
const char *shm_path,
uid_t euid,
- gid_t egid)
+ gid_t egid,
+ uint64_t tracing_id,
+ uid_t tracing_uid)
{
int ret;
struct ust_registry_session *session;
goto error;
}
+ session->tracing_id = tracing_id;
+ session->tracing_uid = tracing_uid;
+
pthread_mutex_lock(&session->lock);
ret = ust_metadata_session_statedump(session, app, major, minor);
pthread_mutex_unlock(&session->lock);
* Try deleting the directory hierarchy.
*/
(void) run_as_rmdir_recursive(reg->root_shm_path,
- reg->uid, reg->gid);
+ reg->uid, reg->gid,
+ LTTNG_DIRECTORY_HANDLE_SKIP_NON_EMPTY_FLAG);
}
/* Destroy the enum hash table */
if (reg->enums) {