static const char iolog_ver2[] = "fio version 2 iolog";
-#ifdef CONFIG_ZLIB
-
-struct iolog_compress {
- struct flist_head list;
- void *buf;
- size_t len;
- unsigned int seq;
- int nofree;
-};
-
-#define GZ_CHUNK 131072
-
-static struct iolog_compress *get_new_chunk(unsigned int seq)
-{
- struct iolog_compress *c;
-
- c = malloc(sizeof(*c));
- INIT_FLIST_HEAD(&c->list);
- c->buf = malloc(GZ_CHUNK);
- c->len = 0;
- c->seq = seq;
- c->nofree = 0;
- return c;
-}
-
-static void free_chunk(struct iolog_compress *ic)
-{
- if (!ic->nofree) {
- free(ic->buf);
- free(ic);
- }
-}
-
-#endif
-
void queue_io_piece(struct thread_data *td, struct io_piece *ipo)
{
flist_add_tail(&ipo->list, &td->io_log_list);
}
#ifdef CONFIG_ZLIB
+
+struct iolog_flush_data {
+ struct tp_work work;
+ struct io_log *log;
+ void *samples;
+ uint64_t nr_samples;
+};
+
+struct iolog_compress {
+ struct flist_head list;
+ void *buf;
+ size_t len;
+ unsigned int seq;
+ int nofree;
+};
+
+#define GZ_CHUNK 131072
+
+static struct iolog_compress *get_new_chunk(unsigned int seq)
+{
+ struct iolog_compress *c;
+
+ c = malloc(sizeof(*c));
+ INIT_FLIST_HEAD(&c->list);
+ c->buf = malloc(GZ_CHUNK);
+ c->len = 0;
+ c->seq = seq;
+ c->nofree = 0;
+ return c;
+}
+
+static void free_chunk(struct iolog_compress *ic)
+{
+ if (!ic->nofree) {
+ free(ic->buf);
+ free(ic);
+ }
+}
+
static int z_stream_init(z_stream *stream, int gz_hdr)
{
int wbits = 15;
struct iolog_compress ic;
z_stream stream;
struct stat sb;
- size_t ret;
+ ssize_t ret;
FILE *f;
- if (stat(file, &sb) < 0) {
- perror("stat");
- return 1;
- }
-
f = fopen(file, "r");
if (!f) {
perror("fopen");
return 1;
}
+ if (stat(file, &sb) < 0) {
+ fclose(f);
+ perror("stat");
+ return 1;
+ }
+
ic.buf = malloc(sb.st_size);
ic.len = sb.st_size;
ic.nofree = 1;
#ifdef CONFIG_ZLIB
-struct iolog_flush_data {
- struct tp_work work;
- struct io_log *log;
- void *samples;
- uint64_t nr_samples;
-};
-
static int gz_work(struct tp_work *work)
{
struct iolog_flush_data *data;
unsigned int seq;
z_stream stream;
size_t total = 0;
- int ret, wbits;
+ int ret;
INIT_FLIST_HEAD(&list);
stream.zfree = Z_NULL;
stream.opaque = Z_NULL;
- /*
- * Store gz header if storing to a file
- */
-#if 0
- wbits = 15;
- if (data->log->log_gz_store)
- wbits += 16;
-
- ret = deflateInit2(&stream, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
- 31, 8, Z_DEFAULT_STRATEGY);
-#else
ret = deflateInit(&stream, Z_DEFAULT_COMPRESSION);
-#endif
if (ret != Z_OK) {
log_err("fio: failed to init gz stream\n");
return 0;