[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/>