Select pwrite64 or pwrite depending on what autoconf finds. This makes e2fuzz find a suitable pwrite variant regardless of platform. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- misc/e2fuzz.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/misc/e2fuzz.c b/misc/e2fuzz.c index 91aafe5..5794f97 100644 --- a/misc/e2fuzz.c +++ b/misc/e2fuzz.c @@ -32,15 +32,15 @@ static int metadata_only = 1; static unsigned long long user_corrupt_bytes = 0; static double user_corrupt_pct = 0.0; -#ifndef HAVE_PWRITE -ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset) +#if !defined HAVE_PWRITE64 && !defined HAVE_PWRITE +static ssize_t my_pwrite(int fd, const void *buf, size_t count, off_t offset) { if (lseek(fd, offset, SEEK_SET) < 0) return 0; return write(fd, buf, count); } -#endif /* HAVE_PWRITE */ +#endif /* !defined HAVE_PWRITE64 && !defined HAVE_PWRITE */ int getseed(void) { @@ -276,10 +276,22 @@ int process_fs(const char *fsname) off % fs->blocksize, off / fs->blocksize, c); if (dryrun) continue; +#ifdef HAVE_PWRITE64 + if (pwrite64(fd, &c, sizeof(c), off) != sizeof(c)) { + perror(fsname); + goto fail3; + } +#elif HAVE_PWRITE if (pwrite(fd, &c, sizeof(c), off) != sizeof(c)) { perror(fsname); goto fail3; } +#else + if (my_pwrite(fd, &c, sizeof(c), off) != sizeof(c)) { + perror(fsname); + goto fail3; + } +#endif } close(fd); -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html