* [PATCH] src: fix compiler warnings
@ 2017-05-01 0:56 Theodore Ts'o
2017-05-02 13:18 ` Eryu Guan
0 siblings, 1 reply; 3+ messages in thread
From: Theodore Ts'o @ 2017-05-01 0:56 UTC (permalink / raw)
To: fstests; +Cc: Theodore Ts'o
Most of the fixes are printf format type warnings, but apparently GCC
6 is smart enough to realize is that if you don't do proper error
checking with posix_memalign, the resulting pointer can be undefined,
and whines about it. So while fixing this in aio-dio-fcntl-race, I
also cleaned up the error checking and reporting.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
src/aio-dio-regress/aio-dio-eof-race.c | 3 ++-
src/aio-dio-regress/aio-dio-fcntl-race.c | 32 +++++++++++++++++++++++---------
src/dio-invalidate-cache.c | 6 ++++--
src/holetest.c | 8 ++++----
src/t_rename_overwrite.c | 3 ++-
5 files changed, 35 insertions(+), 17 deletions(-)
diff --git a/src/aio-dio-regress/aio-dio-eof-race.c b/src/aio-dio-regress/aio-dio-eof-race.c
index bd71b030..67c0b2de 100644
--- a/src/aio-dio-regress/aio-dio-eof-race.c
+++ b/src/aio-dio-regress/aio-dio-eof-race.c
@@ -202,7 +202,8 @@ int main(int argc, char *argv[])
* a seamless buf_size worth of IO_PATTERN to the last block.
*/
if (memcmp(buf, cmp_buf, buf_size)) {
- printf("corruption while extending from %ld\n", eof);
+ printf("corruption while extending from %lld\n",
+ (unsigned long long) eof);
dump_buffer(buf, 0, buf_size);
return 1;
}
diff --git a/src/aio-dio-regress/aio-dio-fcntl-race.c b/src/aio-dio-regress/aio-dio-fcntl-race.c
index cdf97736..88a27472 100644
--- a/src/aio-dio-regress/aio-dio-fcntl-race.c
+++ b/src/aio-dio-regress/aio-dio-fcntl-race.c
@@ -92,12 +92,16 @@ int main(int argc, char **argv)
return 1;
}
fd = open(argv[1], O_CREAT | O_TRUNC | O_RDWR, 0600);
- if (fd < 0)
+ if (fd < 0) {
+ perror("open");
return 1;
+ }
pid1 = fork();
- if (pid1 < 0)
+ if (pid1 < 0) {
+ perror("fork");
return 1;
+ }
if (pid1 == 0) {
struct timeval start, now, delta = { 0, 0 };
@@ -108,12 +112,15 @@ int main(int argc, char **argv)
flags = fcntl(fd, F_GETFL);
while (1) {
ret = fcntl(fd, F_SETFL, flags | O_DIRECT);
- if (ret)
- return ret;
+ if (ret) {
+ perror("fcntl O_DIRECT");
+ return 1;
+ }
ret = fcntl(fd, F_SETFL, flags);
- if (ret)
- return ret;
-
+ if (ret) {
+ perror("fcntl");
+ return 1;
+ }
gettimeofday(&now, NULL);
timersub(&now, &start, &delta);
if (delta.tv_sec >= LOOP_SECONDS)
@@ -121,8 +128,15 @@ int main(int argc, char **argv)
}
} else {
/* parent: AIO */
- void *buf;
- posix_memalign(&buf, BUF_SIZE, BUF_SIZE);
+ void *buf = NULL;
+ int err;
+
+ err = posix_memalign(&buf, BUF_SIZE, BUF_SIZE);
+ if (err || buf == NULL) {
+ fprintf(stderr, "posix_memalign failed: %s\n",
+ strerror(err));
+ exit(1);
+ }
/* Two tasks which performs unaligned aio will be serialized
which maks race window wider */
pid2 = fork();
diff --git a/src/dio-invalidate-cache.c b/src/dio-invalidate-cache.c
index 4c40c87d..004588ab 100644
--- a/src/dio-invalidate-cache.c
+++ b/src/dio-invalidate-cache.c
@@ -160,7 +160,8 @@ static int run_test(const char *filename, int n_child, int blksz, off_t offset,
/* seek, write, read and verify */
for (i = 0; i < nr_iter; i++) {
memset(buf_wr, i + 1, blksz);
- log("pwrite(fd_wr, %p, %d, %lu)\n", buf_wr, blksz, seekoff);
+ log("pwrite(fd_wr, %p, %d, %llu)\n", buf_wr, blksz,
+ (unsigned long long) seekoff);
if (pwrite(fd_wr, buf_wr, blksz, seekoff) != blksz) {
perror("direct write");
exit(EXIT_FAILURE);
@@ -174,7 +175,8 @@ static int run_test(const char *filename, int n_child, int blksz, off_t offset,
}
}
- log("pread(fd_rd, %p, %d, %lu)\n", buf_rd, blksz, seekoff);
+ log("pread(fd_rd, %p, %d, %llu)\n", buf_rd, blksz,
+ (unsigned long long) seekoff);
if (pread(fd_rd, buf_rd, blksz, seekoff) != blksz) {
perror("buffer read");
exit(EXIT_FAILURE);
diff --git a/src/holetest.c b/src/holetest.c
index edd85fe7..1939b35f 100644
--- a/src/holetest.c
+++ b/src/holetest.c
@@ -101,10 +101,10 @@ int verify_mapping(char *vastart, long npages, uint64_t *expect)
for (i = 0; i < THREADS; i++) {
if (*(uint64_t*)(va + page_offs[i]) != expect[i]) {
printf("ERROR: thread %d, "
- "offset %08lx, %08lx != %08lx\n", i,
- (va + page_offs[i] - vastart),
- *(uint64_t*)(va + page_offs[i]),
- expect[i]);
+ "offset %08llx, %08llx != %08llx\n", i,
+ (unsigned long long) (va + page_offs[i] - vastart),
+ (unsigned long long) *(uint64_t*)(va + page_offs[i]),
+ (unsigned long long) expect[i]);
errcnt++;
}
}
diff --git a/src/t_rename_overwrite.c b/src/t_rename_overwrite.c
index fe17f9d5..c5cdd1db 100644
--- a/src/t_rename_overwrite.c
+++ b/src/t_rename_overwrite.c
@@ -31,7 +31,8 @@ int main(int argc, char *argv[])
err(1, "fstat(%i)", fd);
if (stbuf.st_nlink != 0) {
- fprintf(stderr, "nlink is %lu, should be 0\n", stbuf.st_nlink);
+ fprintf(stderr, "nlink is %lu, should be 0\n",
+ (unsigned long) stbuf.st_nlink);
return 1;
}
--
2.11.0.rc0.7.gbe5a750
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] src: fix compiler warnings
2017-05-01 0:56 [PATCH] src: fix compiler warnings Theodore Ts'o
@ 2017-05-02 13:18 ` Eryu Guan
2017-05-22 0:29 ` [PATCH -v2] " Theodore Ts'o
0 siblings, 1 reply; 3+ messages in thread
From: Eryu Guan @ 2017-05-02 13:18 UTC (permalink / raw)
To: Theodore Ts'o; +Cc: fstests
On Sun, Apr 30, 2017 at 08:56:37PM -0400, Theodore Ts'o wrote:
> Most of the fixes are printf format type warnings, but apparently GCC
> 6 is smart enough to realize is that if you don't do proper error
> checking with posix_memalign, the resulting pointer can be undefined,
> and whines about it. So while fixing this in aio-dio-fcntl-race, I
> also cleaned up the error checking and reporting.
>
> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
> ---
> src/aio-dio-regress/aio-dio-eof-race.c | 3 ++-
> src/aio-dio-regress/aio-dio-fcntl-race.c | 32 +++++++++++++++++++++++---------
> src/dio-invalidate-cache.c | 6 ++++--
> src/holetest.c | 8 ++++----
> src/t_rename_overwrite.c | 3 ++-
> 5 files changed, 35 insertions(+), 17 deletions(-)
>
> diff --git a/src/aio-dio-regress/aio-dio-eof-race.c b/src/aio-dio-regress/aio-dio-eof-race.c
> index bd71b030..67c0b2de 100644
> --- a/src/aio-dio-regress/aio-dio-eof-race.c
> +++ b/src/aio-dio-regress/aio-dio-eof-race.c
> @@ -202,7 +202,8 @@ int main(int argc, char *argv[])
> * a seamless buf_size worth of IO_PATTERN to the last block.
> */
> if (memcmp(buf, cmp_buf, buf_size)) {
> - printf("corruption while extending from %ld\n", eof);
> + printf("corruption while extending from %lld\n",
> + (unsigned long long) eof);
The format is %lld, cast eof to (long long)? off_t seems to be a signed
value.
> dump_buffer(buf, 0, buf_size);
> return 1;
> }
> diff --git a/src/aio-dio-regress/aio-dio-fcntl-race.c b/src/aio-dio-regress/aio-dio-fcntl-race.c
> index cdf97736..88a27472 100644
> --- a/src/aio-dio-regress/aio-dio-fcntl-race.c
> +++ b/src/aio-dio-regress/aio-dio-fcntl-race.c
> @@ -92,12 +92,16 @@ int main(int argc, char **argv)
> return 1;
> }
> fd = open(argv[1], O_CREAT | O_TRUNC | O_RDWR, 0600);
> - if (fd < 0)
> + if (fd < 0) {
> + perror("open");
> return 1;
> + }
>
> pid1 = fork();
> - if (pid1 < 0)
> + if (pid1 < 0) {
> + perror("fork");
> return 1;
> + }
>
> if (pid1 == 0) {
> struct timeval start, now, delta = { 0, 0 };
> @@ -108,12 +112,15 @@ int main(int argc, char **argv)
> flags = fcntl(fd, F_GETFL);
> while (1) {
> ret = fcntl(fd, F_SETFL, flags | O_DIRECT);
> - if (ret)
> - return ret;
> + if (ret) {
> + perror("fcntl O_DIRECT");
> + return 1;
> + }
> ret = fcntl(fd, F_SETFL, flags);
> - if (ret)
> - return ret;
> -
> + if (ret) {
> + perror("fcntl");
> + return 1;
> + }
> gettimeofday(&now, NULL);
> timersub(&now, &start, &delta);
> if (delta.tv_sec >= LOOP_SECONDS)
> @@ -121,8 +128,15 @@ int main(int argc, char **argv)
> }
> } else {
> /* parent: AIO */
> - void *buf;
> - posix_memalign(&buf, BUF_SIZE, BUF_SIZE);
> + void *buf = NULL;
> + int err;
> +
> + err = posix_memalign(&buf, BUF_SIZE, BUF_SIZE);
> + if (err || buf == NULL) {
> + fprintf(stderr, "posix_memalign failed: %s\n",
> + strerror(err));
> + exit(1);
> + }
> /* Two tasks which performs unaligned aio will be serialized
> which maks race window wider */
> pid2 = fork();
> diff --git a/src/dio-invalidate-cache.c b/src/dio-invalidate-cache.c
> index 4c40c87d..004588ab 100644
> --- a/src/dio-invalidate-cache.c
> +++ b/src/dio-invalidate-cache.c
> @@ -160,7 +160,8 @@ static int run_test(const char *filename, int n_child, int blksz, off_t offset,
> /* seek, write, read and verify */
> for (i = 0; i < nr_iter; i++) {
> memset(buf_wr, i + 1, blksz);
> - log("pwrite(fd_wr, %p, %d, %lu)\n", buf_wr, blksz, seekoff);
> + log("pwrite(fd_wr, %p, %d, %llu)\n", buf_wr, blksz,
> + (unsigned long long) seekoff);
Same here, change format to %lld and cast seekoff to (long long)?
> if (pwrite(fd_wr, buf_wr, blksz, seekoff) != blksz) {
> perror("direct write");
> exit(EXIT_FAILURE);
> @@ -174,7 +175,8 @@ static int run_test(const char *filename, int n_child, int blksz, off_t offset,
> }
> }
>
> - log("pread(fd_rd, %p, %d, %lu)\n", buf_rd, blksz, seekoff);
> + log("pread(fd_rd, %p, %d, %llu)\n", buf_rd, blksz,
> + (unsigned long long) seekoff);
Same here.
Thanks,
Eryu
> if (pread(fd_rd, buf_rd, blksz, seekoff) != blksz) {
> perror("buffer read");
> exit(EXIT_FAILURE);
> diff --git a/src/holetest.c b/src/holetest.c
> index edd85fe7..1939b35f 100644
> --- a/src/holetest.c
> +++ b/src/holetest.c
> @@ -101,10 +101,10 @@ int verify_mapping(char *vastart, long npages, uint64_t *expect)
> for (i = 0; i < THREADS; i++) {
> if (*(uint64_t*)(va + page_offs[i]) != expect[i]) {
> printf("ERROR: thread %d, "
> - "offset %08lx, %08lx != %08lx\n", i,
> - (va + page_offs[i] - vastart),
> - *(uint64_t*)(va + page_offs[i]),
> - expect[i]);
> + "offset %08llx, %08llx != %08llx\n", i,
> + (unsigned long long) (va + page_offs[i] - vastart),
> + (unsigned long long) *(uint64_t*)(va + page_offs[i]),
> + (unsigned long long) expect[i]);
> errcnt++;
> }
> }
> diff --git a/src/t_rename_overwrite.c b/src/t_rename_overwrite.c
> index fe17f9d5..c5cdd1db 100644
> --- a/src/t_rename_overwrite.c
> +++ b/src/t_rename_overwrite.c
> @@ -31,7 +31,8 @@ int main(int argc, char *argv[])
> err(1, "fstat(%i)", fd);
>
> if (stbuf.st_nlink != 0) {
> - fprintf(stderr, "nlink is %lu, should be 0\n", stbuf.st_nlink);
> + fprintf(stderr, "nlink is %lu, should be 0\n",
> + (unsigned long) stbuf.st_nlink);
> return 1;
> }
>
> --
> 2.11.0.rc0.7.gbe5a750
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH -v2] src: fix compiler warnings
2017-05-02 13:18 ` Eryu Guan
@ 2017-05-22 0:29 ` Theodore Ts'o
0 siblings, 0 replies; 3+ messages in thread
From: Theodore Ts'o @ 2017-05-22 0:29 UTC (permalink / raw)
To: fstests; +Cc: eguan, Theodore Ts'o
Most of the fixes are printf format type warnings, but apparently GCC
6 is smart enough to realize is that if you don't do proper error
checking with posix_memalign, the resulting pointer can be undefined,
and whines about it. So while fixing this in aio-dio-fcntl-race, I
also cleaned up the error checking and reporting.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
src/aio-dio-regress/aio-dio-eof-race.c | 3 ++-
src/aio-dio-regress/aio-dio-fcntl-race.c | 32 +++++++++++++++++++++++---------
src/dio-invalidate-cache.c | 6 ++++--
src/holetest.c | 8 ++++----
src/t_rename_overwrite.c | 3 ++-
5 files changed, 35 insertions(+), 17 deletions(-)
diff --git a/src/aio-dio-regress/aio-dio-eof-race.c b/src/aio-dio-regress/aio-dio-eof-race.c
index bd71b030..bb1890b5 100644
--- a/src/aio-dio-regress/aio-dio-eof-race.c
+++ b/src/aio-dio-regress/aio-dio-eof-race.c
@@ -202,7 +202,8 @@ int main(int argc, char *argv[])
* a seamless buf_size worth of IO_PATTERN to the last block.
*/
if (memcmp(buf, cmp_buf, buf_size)) {
- printf("corruption while extending from %ld\n", eof);
+ printf("corruption while extending from %lld\n",
+ (long long) eof);
dump_buffer(buf, 0, buf_size);
return 1;
}
diff --git a/src/aio-dio-regress/aio-dio-fcntl-race.c b/src/aio-dio-regress/aio-dio-fcntl-race.c
index cdf97736..88a27472 100644
--- a/src/aio-dio-regress/aio-dio-fcntl-race.c
+++ b/src/aio-dio-regress/aio-dio-fcntl-race.c
@@ -92,12 +92,16 @@ int main(int argc, char **argv)
return 1;
}
fd = open(argv[1], O_CREAT | O_TRUNC | O_RDWR, 0600);
- if (fd < 0)
+ if (fd < 0) {
+ perror("open");
return 1;
+ }
pid1 = fork();
- if (pid1 < 0)
+ if (pid1 < 0) {
+ perror("fork");
return 1;
+ }
if (pid1 == 0) {
struct timeval start, now, delta = { 0, 0 };
@@ -108,12 +112,15 @@ int main(int argc, char **argv)
flags = fcntl(fd, F_GETFL);
while (1) {
ret = fcntl(fd, F_SETFL, flags | O_DIRECT);
- if (ret)
- return ret;
+ if (ret) {
+ perror("fcntl O_DIRECT");
+ return 1;
+ }
ret = fcntl(fd, F_SETFL, flags);
- if (ret)
- return ret;
-
+ if (ret) {
+ perror("fcntl");
+ return 1;
+ }
gettimeofday(&now, NULL);
timersub(&now, &start, &delta);
if (delta.tv_sec >= LOOP_SECONDS)
@@ -121,8 +128,15 @@ int main(int argc, char **argv)
}
} else {
/* parent: AIO */
- void *buf;
- posix_memalign(&buf, BUF_SIZE, BUF_SIZE);
+ void *buf = NULL;
+ int err;
+
+ err = posix_memalign(&buf, BUF_SIZE, BUF_SIZE);
+ if (err || buf == NULL) {
+ fprintf(stderr, "posix_memalign failed: %s\n",
+ strerror(err));
+ exit(1);
+ }
/* Two tasks which performs unaligned aio will be serialized
which maks race window wider */
pid2 = fork();
diff --git a/src/dio-invalidate-cache.c b/src/dio-invalidate-cache.c
index 4c40c87d..0f87d668 100644
--- a/src/dio-invalidate-cache.c
+++ b/src/dio-invalidate-cache.c
@@ -160,7 +160,8 @@ static int run_test(const char *filename, int n_child, int blksz, off_t offset,
/* seek, write, read and verify */
for (i = 0; i < nr_iter; i++) {
memset(buf_wr, i + 1, blksz);
- log("pwrite(fd_wr, %p, %d, %lu)\n", buf_wr, blksz, seekoff);
+ log("pwrite(fd_wr, %p, %d, %lld)\n", buf_wr, blksz,
+ (long long) seekoff);
if (pwrite(fd_wr, buf_wr, blksz, seekoff) != blksz) {
perror("direct write");
exit(EXIT_FAILURE);
@@ -174,7 +175,8 @@ static int run_test(const char *filename, int n_child, int blksz, off_t offset,
}
}
- log("pread(fd_rd, %p, %d, %lu)\n", buf_rd, blksz, seekoff);
+ log("pread(fd_rd, %p, %d, %lld)\n", buf_rd, blksz,
+ (long long) seekoff);
if (pread(fd_rd, buf_rd, blksz, seekoff) != blksz) {
perror("buffer read");
exit(EXIT_FAILURE);
diff --git a/src/holetest.c b/src/holetest.c
index edd85fe7..1939b35f 100644
--- a/src/holetest.c
+++ b/src/holetest.c
@@ -101,10 +101,10 @@ int verify_mapping(char *vastart, long npages, uint64_t *expect)
for (i = 0; i < THREADS; i++) {
if (*(uint64_t*)(va + page_offs[i]) != expect[i]) {
printf("ERROR: thread %d, "
- "offset %08lx, %08lx != %08lx\n", i,
- (va + page_offs[i] - vastart),
- *(uint64_t*)(va + page_offs[i]),
- expect[i]);
+ "offset %08llx, %08llx != %08llx\n", i,
+ (unsigned long long) (va + page_offs[i] - vastart),
+ (unsigned long long) *(uint64_t*)(va + page_offs[i]),
+ (unsigned long long) expect[i]);
errcnt++;
}
}
diff --git a/src/t_rename_overwrite.c b/src/t_rename_overwrite.c
index fe17f9d5..c5cdd1db 100644
--- a/src/t_rename_overwrite.c
+++ b/src/t_rename_overwrite.c
@@ -31,7 +31,8 @@ int main(int argc, char *argv[])
err(1, "fstat(%i)", fd);
if (stbuf.st_nlink != 0) {
- fprintf(stderr, "nlink is %lu, should be 0\n", stbuf.st_nlink);
+ fprintf(stderr, "nlink is %lu, should be 0\n",
+ (unsigned long) stbuf.st_nlink);
return 1;
}
--
2.11.0.rc0.7.gbe5a750
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-05-22 0:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-01 0:56 [PATCH] src: fix compiler warnings Theodore Ts'o
2017-05-02 13:18 ` Eryu Guan
2017-05-22 0:29 ` [PATCH -v2] " Theodore Ts'o
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.