*
* Return allocated struct lttng_index_file, NULL on error.
*/
-struct lttng_index_file *lttng_index_file_create(char *path_name,
+struct lttng_index_file *lttng_index_file_create(const char *path_name,
char *stream_name, int uid, int gid,
uint64_t size, uint64_t count, uint32_t major, uint32_t minor)
{
size_ret = lttng_write(fd, &hdr, sizeof(hdr));
if (size_ret < sizeof(hdr)) {
PERROR("write index header");
- ret = -1;
goto error;
}
index_file->fd = fd;
int lttng_index_file_write(const struct lttng_index_file *index_file,
const struct ctf_packet_index *element)
{
+ int fd;
+ size_t len;
ssize_t ret;
- int fd = index_file->fd;
- size_t len = index_file->element_len;
+ assert(index_file);
assert(element);
+ fd = index_file->fd;
+ len = index_file->element_len;
+
if (fd < 0) {
goto error;
}
}
ret = lttng_read(fd, element, len);
- if (ret < len) {
+ if (ret < 0) {
PERROR("read index file");
goto error;
}
+ if (ret < len) {
+ ERR("lttng_read expected %zu, returned %zd", len, ret);
+ goto error;
+ }
return 0;
error:
DBG("Index opening file %s in read only", fullpath);
read_fd = open(fullpath, O_RDONLY);
if (read_fd < 0) {
- if (errno == ENOENT) {
- ret = -ENOENT;
- } else {
- PERROR("opening index in read-only");
- }
+ PERROR("opening index in read-only");
goto error;
}
PERROR("close read fd %d", read_fd);
}
}
- ret = -1;
error:
free(index_file);