[OpenAFS] Re: Large files with 1.6.0pre2
Russ Allbery
rra@stanford.edu
Sat, 05 Mar 2011 19:40:22 -0800
"Ryan C. Underwood" <nemesis-lists@icequake.net> writes:
> Yes, this was exactly it. Attached patch fixes the issue.
> --- temp/src/vol/ihandle.h 2011-03-05 21:04:16.885118383 -0600
> +++ 1.6.0/openafs-1.6.0~pre2/src/vol/ihandle.h 2011-03-05 20:14:28.249105924 -0600
> @@ -528,8 +526,13 @@
> #endif
>
> #ifdef HAVE_PIOV
> +#ifdef O_LARGEFILE
> +#define FDH_PREADV(H, I, N, O) preadv64((H)->fd_fd, I, N, O)
> +#define FDH_PWRITEV(H, I, N, O) pwritev64((H)->fd_fd, I, N, O)
> +#else /* !O_LARGEFILE */
> #define FDH_PREADV(H, I, N, O) preadv((H)->fd_fd, I, N, O)
> #define FDH_PWRITEV(H, I, N, O) pwritev((H)->fd_fd, I, N, O)
> +#endif /* !O_LARGEFILE */
> #endif
>
> #define FDH_PREAD(H, B, S, O) OS_PREAD((H)->fd_fd, B, S, O)
This begs the question of why __USE_FILE_OFFSET64 is not being defined,
which would make this unnecessary. This is defined on Linux if
_FILE_OFFSET_BITS is defined to 64, which presumably we indeed want to
define.
The normal way to do this is with the Autoconf macro AC_SYS_LARGEFILE,
which indeed we're not using. Is there any reason why not, or should we
just add it?
I'm not sure what we were doing before. I thought maybe we accidentally
dropped some setting when we switched to AC_USE_SYSTEM_EXTENSIONS, but I
looked at 129b6954a6f491c6f3c3e417055bdc68d4726408 and don't see anything
there that would have been related.
--
Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>