* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#define _GNU_SOURCE
#define _LGPL_SOURCE
#include <common/common.h>
#include <common/index/index.h>
* the opening of the index, otherwise open it right now.
*/
if (stream->index_received_seqcount == 0) {
- vstream->index_fd = NULL;
+ vstream->index_file = NULL;
} else {
- int read_fd;
-
- read_fd = index_open(vstream->path_name, vstream->channel_name,
+ vstream->index_file = lttng_index_file_open(vstream->path_name,
+ vstream->channel_name,
stream->tracefile_count,
vstream->current_tracefile_id);
- if (read_fd < 0) {
- goto error_unlock;
- }
- vstream->index_fd = stream_fd_create(read_fd);
- if (!vstream->index_fd) {
- if (close(read_fd)) {
- PERROR("close");
- }
+ if (!vstream->index_file) {
goto error_unlock;
}
}
- if (seek_t == LTTNG_VIEWER_SEEK_LAST && vstream->index_fd) {
+ if (seek_t == LTTNG_VIEWER_SEEK_LAST && vstream->index_file) {
off_t lseek_ret;
- lseek_ret = lseek(vstream->index_fd->fd, 0, SEEK_END);
+ lseek_ret = lseek(vstream->index_file->fd, 0, SEEK_END);
if (lseek_ret < 0) {
goto error_unlock;
}
stream_fd_put(vstream->stream_fd);
vstream->stream_fd = NULL;
}
- if (vstream->index_fd) {
- stream_fd_put(vstream->index_fd);
- vstream->index_fd = NULL;
+ if (vstream->index_file) {
+ lttng_index_file_put(vstream->index_file);
+ vstream->index_file = NULL;
}
if (vstream->stream) {
stream_put(vstream->stream);
vstream->index_sent_seqcount = seq_tail;
}
- if (vstream->index_fd) {
- stream_fd_put(vstream->index_fd);
- vstream->index_fd = NULL;
+ if (vstream->index_file) {
+ lttng_index_file_put(vstream->index_file);
+ vstream->index_file = NULL;
}
if (vstream->stream_fd) {
stream_fd_put(vstream->stream_fd);
vstream->stream_fd = NULL;
}
- ret = index_open(vstream->path_name, vstream->channel_name,
+ vstream->index_file = lttng_index_file_open(vstream->path_name,
+ vstream->channel_name,
stream->tracefile_count,
vstream->current_tracefile_id);
- if (ret < 0) {
+ if (!vstream->index_file) {
+ ret = -1;
goto end;
- }
- vstream->index_fd = stream_fd_create(ret);
- if (vstream->index_fd) {
- ret = 0;
} else {
- if (close(ret)) {
- PERROR("close");
- }
- ret = -1;
+ ret = 0;
}
end:
return ret;
struct lttng_ht_iter iter;
struct relay_viewer_stream *vstream;
+ if (!viewer_streams_ht) {
+ return;
+ }
+
rcu_read_lock();
cds_lfht_for_each_entry(viewer_streams_ht->ht, &iter.iter, vstream,
stream_n.node) {