The definition of O_DIRECT in src/trunc.c causes xfstest 125 to fail
when run on a Pandaboard. On ARM, the value used (0x040000) is
O_DIRECTORY rather than O_DIRECT as it is on x86. Prefer the platform's
native definition of O_DIRECT supplied by fcntl.h if available. Also,
fix a couple of error messages to properly reflect their context.
Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
#include <stdlib.h>
#include <string.h>
+#ifndef O_DIRECT
#define O_DIRECT 040000
+#endif
#define WAITTIME 60
#define BUFSIZE 4096
printf("direct write of 1's into file\n");
err = write(fd, buf, BUFSIZE);
- if (err < 0) perror("buffered write failed");
+ if (err < 0) perror("direct write failed");
close(fd);
printf("buffered write of 2's into file\n");
err = write(fd, buf, BUFSIZE);
- if (err < 0) perror("direct write failed");
+ if (err < 0) perror("buffered write failed");
/* 1 now on disk, but 2 data is buffered */