X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Findex%2Findex.c;h=cddc58c09de1726b8322816b4eb3f308dace03f3;hp=89b4fd769eab98a49137fb08087388caec4469e4;hb=6cd525e813795a1d5e38feac8dedf2c73ffb1274;hpb=33b141366b29aa086ecb8d06808d7ba91f83cb1e diff --git a/src/common/index/index.c b/src/common/index/index.c index 89b4fd769..cddc58c09 100644 --- a/src/common/index/index.c +++ b/src/common/index/index.c @@ -35,6 +35,7 @@ int index_create_file(char *path_name, char *stream_name, int uid, int gid, uint64_t size, uint64_t count) { int ret, fd = -1; + ssize_t size_ret; struct lttng_packet_index_file_hdr hdr; char fullpath[PATH_MAX]; @@ -65,11 +66,10 @@ int index_create_file(char *path_name, char *stream_name, int uid, int gid, hdr.index_major = htobe32(INDEX_MAJOR); hdr.index_minor = htobe32(INDEX_MINOR); - do { - ret = write(fd, &hdr, sizeof(hdr)); - } while (ret < 0 && errno == EINTR); - if (ret < 0) { + size_ret = lttng_write(fd, &hdr, sizeof(hdr)); + if (size_ret < sizeof(hdr)) { PERROR("write index header"); + ret = -1; goto error; } @@ -90,19 +90,18 @@ error: /* * Write index values to the given fd of size len. * - * Return 0 on success or else a negative value on error. + * Return "len" on success or else < len on error. errno contains error + * details. */ -int index_write(int fd, struct lttng_packet_index *index, size_t len) +ssize_t index_write(int fd, struct lttng_packet_index *index, size_t len) { - int ret; + ssize_t ret; assert(fd >= 0); assert(index); - do { - ret = write(fd, index, len); - } while (ret < 0 && errno == EINTR); - if (ret < 0) { + ret = lttng_write(fd, index, len); + if (ret < len) { PERROR("writing index file"); }