mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
src: fix compiler warnings
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> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
+4
-4
@@ -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++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user