}
for (i=0; i<1048576 * sizeof(i); i += sizeof(i)) {
r = write(fd, &i, sizeof(i));
+ if (r == -1) {
+ r = errno;
+ printf("write_pattern: error: write() failed with: %d (%s)\n", r, strerror(r));
+ break;
+ }
}
close(fd);
void *rawbuf;
int r;
int flags;
+ int err = 0;
+
if(direct)
flags = O_RDONLY|O_DIRECT;
else
int fd = open("foo", flags);
if (fd < 0) {
- int err = errno;
+ err = errno;
printf("read_file: error: open() failed with: %d (%s)\n", err, strerror(err));
exit(err);
}
if ((r = posix_memalign(&rawbuf, 4096, len + buf_align)) != 0) {
printf("read_file: error: posix_memalign failed with %d", r);
+ close(fd);
exit (r);
}
void *buf = (char *)rawbuf + buf_align;
memset(buf, 0, len);
r = pread(fd, buf, len, offset);
- close(fd);
+ if (r == -1) {
+ err = errno;
+ printf("read_file: error: pread() failed with: %d (%s)\n", err, strerror(err));
+ goto out;
+ }
r = verify_pattern(buf, len, offset);
+
+out:
+ close(fd);
free(rawbuf);
return r;
}
memset(buf2, 0, len);
r = pread(fd, buf2, len, offset);
+ if (r == -1) {
+ err = errno;
+ printf("write_file: error: pread() failed with: %d (%s)\n", err, strerror(err));
+ goto out_free_buf;
+ }
r = verify_pattern(buf2, len, offset);
+out_free_buf:
free(buf2);
out_free:
free(rawbuf);