Recent changes (master)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following changes since commit e5c9093db2c18166bd572f2ab40d5eba16a25b07:

  server/client: don't use __ conversion functions if not needed (2014-10-13 16:05:10 -0600)

are available in the git repository at:

  git://git.kernel.dk/fio.git master

for you to fetch changes up to de06a46881e1a8876b5fd1de5e002d6189a90a30:

  Get rid if --header-file argument for lex (2014-10-14 21:12:22 -0600)

----------------------------------------------------------------
Jens Axboe (7):
      engines/libaio: fix wrong setting of wait_start
      crc/test: fix potential div by zero
      sha256: cast shift to uint64_t
      t/dedupe: fix bogus items NULL compare
      t/btrace2fio: fix fd leak on error
      client: fix potential NULL dereference
      Get rid if --header-file argument for lex

 .gitignore              |    1 -
 Makefile                |    2 +-
 client.c                |    3 +++
 crc/sha256.c            |    2 +-
 crc/test.c              |   17 ++++++++++-------
 engines/libaio.c        |    2 +-
 exp/expression-parser.l |    4 ++--
 exp/expression-parser.y |    3 +--
 t/btrace2fio.c          |    2 ++
 t/dedupe.c              |    3 +--
 10 files changed, 22 insertions(+), 17 deletions(-)

---

Diff of recent changes:

diff --git a/.gitignore b/.gitignore
index f13ec27..c9d90fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,3 @@
 /fio
 y.tab.*
 lex.yy.c
-lexer.h
diff --git a/Makefile b/Makefile
index 750eccd..0f77df9 100644
--- a/Makefile
+++ b/Makefile
@@ -267,7 +267,7 @@ override CFLAGS += -DFIO_VERSION='"$(FIO_VERSION)"'
 
 ifdef CONFIG_ARITHMETIC
 lex.yy.c: exp/expression-parser.l
-	$(QUIET_LEX)$(LEX) --header-file=lexer.h exp/expression-parser.l
+	$(QUIET_LEX)$(LEX) exp/expression-parser.l
 
 lex.yy.o: lex.yy.c y.tab.h
 	$(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
diff --git a/client.c b/client.c
index 6b9fdd8..edc02a0 100644
--- a/client.c
+++ b/client.c
@@ -271,6 +271,9 @@ int fio_client_add_ini_file(void *cookie, const char *ini_file, int remote)
 	size_t new_size;
 	void *new_files;
 
+	if (!client)
+		return 1;
+
 	dprint(FD_NET, "client <%s>: add ini %s\n", client->hostname, ini_file);
 
 	new_size = (client->nr_files + 1) * sizeof(struct client_file);
diff --git a/crc/sha256.c b/crc/sha256.c
index ae9ff4d..2fd17a3 100644
--- a/crc/sha256.c
+++ b/crc/sha256.c
@@ -277,7 +277,7 @@ void fio_sha256_final(struct fio_sha256_ctx *sctx)
 	static const uint8_t padding[64] = { 0x80, };
 
 	/* Save number of bits */
-	bits = sctx->count << 3;
+	bits = (uint64_t) sctx->count << 3;
 
 	/* Pad out to 56 mod 64. */
 	index = sctx->count & 0x3f;
diff --git a/crc/test.c b/crc/test.c
index bca46f2..bc5cc45 100644
--- a/crc/test.c
+++ b/crc/test.c
@@ -329,13 +329,16 @@ int fio_crctest(const char *type)
 		t[i].fn(&t[i], buf, CHUNK);
 		usec = utime_since_now(&tv);
 
-		mb_sec = (double) mb / (double) usec;
-		mb_sec /= (1.024 * 1.024);
-		if (strlen(t[i].name) >= 7)
-			sprintf(pre, "\t");
-		else
-			sprintf(pre, "\t\t");
-		printf("%s:%s%8.2f MB/sec\n", t[i].name, pre, mb_sec);
+		if (usec) {
+			mb_sec = (double) mb / (double) usec;
+			mb_sec /= (1.024 * 1.024);
+			if (strlen(t[i].name) >= 7)
+				sprintf(pre, "\t");
+			else
+				sprintf(pre, "\t\t");
+			printf("%s:%s%8.2f MB/sec\n", t[i].name, pre, mb_sec);
+		} else
+			printf("%s:inf MB/sec\n", t[i].name);
 		first = 0;
 	}
 
diff --git a/engines/libaio.c b/engines/libaio.c
index 12f3b36..f7e2f89 100644
--- a/engines/libaio.c
+++ b/engines/libaio.c
@@ -281,7 +281,7 @@ static int fio_libaio_commit(struct thread_data *td)
 			}
 			if (!wait_start) {
 				fio_gettime(&tv, NULL);
-				wait_start = 0;
+				wait_start = 1;
 			} else if (mtime_since_now(&tv) > 30000) {
 				log_err("fio: aio appears to be stalled, giving up\n");
 				break;
diff --git a/exp/expression-parser.l b/exp/expression-parser.l
index 16e3873..856596a 100644
--- a/exp/expression-parser.l
+++ b/exp/expression-parser.l
@@ -24,13 +24,13 @@
 
 #define YYSTYPE PARSER_VALUE_TYPE
 
-extern int lexer_input(char *buffer, size_t *nbytes, int buffersize);
+extern int lexer_input(char *buffer, unsigned int *nbytes, int buffersize);
 
 #undef YY_INPUT
 #define YY_INPUT(buffer, bytes_read, bytes_requested)			\
 ({									\
 	int __ret;							\
-	size_t __bread = bytes_read;					\
+	unsigned int __bread = bytes_read;				\
 	__ret = lexer_input((buffer), &__bread, (bytes_requested));	\
 	bytes_read = __bread;						\
 	__ret;								\
diff --git a/exp/expression-parser.y b/exp/expression-parser.y
index 83b5b30..8ae0c01 100644
--- a/exp/expression-parser.y
+++ b/exp/expression-parser.y
@@ -21,7 +21,6 @@
 #include <stdio.h>
 #include <string.h>
 #include <math.h>
-#include "lexer.h"
 
 struct parser_value_type {
 	double dval;
@@ -188,7 +187,7 @@ expression:	expression '+' expression {
 static int lexer_read_offset = 0;
 static char lexer_input_buffer[1000];
 
-int lexer_input(char* buffer, yy_size_t *bytes_read, int bytes_requested)
+int lexer_input(char* buffer, unsigned int *bytes_read, int bytes_requested)
 {
 	int bytes_left = strlen(lexer_input_buffer) - lexer_read_offset;
 
diff --git a/t/btrace2fio.c b/t/btrace2fio.c
index 5666a56..baf29ac 100644
--- a/t/btrace2fio.c
+++ b/t/btrace2fio.c
@@ -870,9 +870,11 @@ static int trace_needs_swap(const char *trace_file, int *swap)
 
 	ret = read(fd, &t, sizeof(t));
 	if (ret < 0) {
+		close(fd);
 		perror("read");
 		return 1;
 	} else if (ret != sizeof(t)) {
+		close(fd);
 		log_err("fio: short read on trace file\n");
 		return 1;
 	}
diff --git a/t/dedupe.c b/t/dedupe.c
index 030b4fc..b43b677 100644
--- a/t/dedupe.c
+++ b/t/dedupe.c
@@ -294,8 +294,7 @@ static int do_work(struct worker_thread *thread, void *buf)
 	for (i = 0; i < nblocks; i++) {
 		void *thisptr = buf + (i * blocksize);
 
-		if (items)
-			items[i].offset = offset;
+		items[i].offset = offset;
 		crc_buf(thisptr, items[i].hash);
 		offset += blocksize;
 		nitems++;
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux