Re: 1GB Limit on EXT2FS? -> 64 bit fs-functions

Matti Aarnio (matti.aarnio@tele.fi)
Thu, 26 Mar 1998 10:07:24 +0200 (EET)


(32-bit machines and files larger than 2 GB)

This should be a FAQ: at the moment on 32-bit machines certain
layer of kernel don't do more than 32-bit file offsets, and before
that is fixed, the kernel can't internally support 64-bit file
offsets on those kinds of machines -- on 64-bit machines those
parts of the kernel are 64-bit clean.

Having said that, there exist patches which grow file-size limit to
4 GB on EXT2 filesystems without any modifications to i-node data
layouts et.al. non-trivial. Also, backwards incompatible changes
exist that grow filesizes well beyond that by stealing further 16
bits for file-size from elsewere in the on-disk i-node data structure.

A month (or two?) ago there was a word that somebody is working on
that part of the kernel where this inherent 32-bit offsets limit
exists.

(Details are on list archives, or perhaps Ted Ts'o can repeat
them again.. ..or whoever said he will be looking at the issues.)

> Isnīt it a common way to extend the api to preserve backwards compatibility,
> thus using a different set of functions with different datatypes to support
> 64 bit filesystem operations on 32 bit systems - or means the "Linux-Way"
> of doing things a complete recompile & fix of everything using common file
> functions with 64 bit datatypes, which will break lots of things ...?
> Would any 64-bit programmer please clean up this!

The interface in between kernel- and user-spaces is another
matter. Having support for 64-bit interfaces between userspace
and kernel could be beneficial by allowing use of software that
does use those APIs, and in the eventual emergence of kernel
support for it could then allow people to use of files larger
than 2 GB (signed 32-bit offsets).

At the moment such interfaces would - of course - limit the
file offsets/sizes to 2 GB on 32-bit machines.

Now there is a neat project for somebody, any takers ?
You need to look at:
http://www.sas.com/standards/large.file/index.html
for the API specification.
(And mind you, the need is for kernel interfaces, getting
(g)libc implementation is another project, but kernel API
is needed before (g)libc can get into the action.)

> Thanks, hp

/Matti Aarnio <mea@nic.funet.fi> <matti.aarnio@tele.fi>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu