From: adilger Date: Fri, 23 May 2003 07:03:10 +0000 (+0000) Subject: Merge b_devel -> b_orphan. X-Git-Tag: v1_7_100~1^71~28 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=ee4ef39f8633a8c0a0970164bb5ce94ff0b0549a;p=fs%2Flustre-release.git Merge b_devel -> b_orphan. DEVEL_ORPHAN_UPDATE_PARENT_20030522 -> DEVEL_ORPHAN_UPDATE_PARENT_20030522 --- diff --git a/lustre/tests/directio.c b/lustre/tests/directio.c index f529fb0..e660ea4 100644 --- a/lustre/tests/directio.c +++ b/lustre/tests/directio.c @@ -17,24 +17,26 @@ int main(int argc, char **argv) { int fd; char *buf; - int blocks; + int blocks, seek_blocks; long len; - struct stat st; + off64_t seek; + struct stat64 st; int rc; - if (argc != 3) { - printf("Usage: %s file nr_blocks\n", argv[0]); + if (argc != 4) { + printf("Usage: %s file seek nr_blocks\n", argv[0]); return 1; } - blocks = strtoul(argv[2], 0, 0); - fd = open(argv[1], O_DIRECT | O_RDWR | O_CREAT, 0644); + seek_blocks = strtoul(argv[2], 0, 0); + blocks = strtoul(argv[3], 0, 0); + fd = open(argv[1], O_LARGEFILE | O_DIRECT | O_RDWR | O_CREAT, 0644); if (fd == -1) { printf("Cannot open %s: %s\n", argv[1], strerror(errno)); return 1; } - if (fstat(fd, &st) < 0) { + if (fstat64(fd, &st) < 0) { printf("Cannot stat %s: %s\n", argv[1], strerror(errno)); return 1; } @@ -42,6 +44,12 @@ int main(int argc, char **argv) printf("directio on %s for %dx%lu blocks \n", argv[1], blocks, st.st_blksize); + seek = (off64_t)seek_blocks * (off64_t)st.st_blksize; + if (lseek64(fd, seek, SEEK_SET) < 0) { + printf("lseek64 failed: %s\n", strerror(errno)); + return 1; + } + len = blocks * st.st_blksize; buf = mmap(0, len, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, 0, 0); if (!buf) { @@ -56,7 +64,7 @@ int main(int argc, char **argv) return 1; } - if (lseek(fd, 0, SEEK_SET) != 0) { + if (lseek64(fd, seek, SEEK_SET) < 0) { printf("Cannot seek %s\n", strerror(errno)); return 1; }