Expansion Stuff

kernel@draper.net
Thu, 28 Jan 1999 18:07:04 -0600


On Thu, Jan 28, 1999 at 11:19:04PM +0000, H. Peter Anvin wrote:
<snip>
>
> The size expansion stuff is majorly overdue. It *has* to be in 2.3.
>
> Here are the types I suggest to change:
>
> dev_t 32 or 64 bits
> uid_t 32 bits
> gid_t 32 bits
> time_t 64 bits(??)
>
> Switch Linux to use nanosecond based time; old microsecond-based calls
> become compatibility wrappers.
>
> A reasonable compact (16 bytes) structure that would handle all
> time-based issues could look like this:
>
> struct timespec {
> s64 tv_sec; /* Seconds, signed 64-bit (UTC) */
> u32 tv_nsec; /* Nanoseconds, unsigned 32-bit */
> s32 tv_taid; /* UTC-TAI delta, signed 32-bit */
> };
>
> This is small enough that future filesystems probably could use these
> kinds of timestamps, if desirable.

While we are on the subject... what thinks ye of a general solution
expanding the lseek syscall offset parameter to 64 bits. Thus files
in all filesystems could grow into terabyte range without suffering API
constraints, new syscalls, etc.

Of course, there may be some impact on underlying vfs, buffering, and/or
filesystem code (say he, trying to suppress a smile). But, seriously,
that seems a worthy price to pay to get beyond the 2G limit, once and
for all, everywhere.

Reed H. Petty
rhp@draper.net

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/