The size field in the inode. It is also a limitation of the VFS
layer, and libc (struct stat, for one.)
It would require massive restructuring of the virtual memory management
layer for the i386, since file I/O is done through the page cache, which
also has the 32 bit limitation.
Gnu libc fortunately already has made provision for a larger off_t, so
the main issue is the VM layer.
Massive changes, including a format change in the ext2 filesystem
(which should be backward-compatible if done right, though.)
It should be easier under the Alpha architecture, and I am planning on
looking into adding 64-bit file support for the Alpha, although to be
honest I've gotten so swamped lately with other projects that I haven't
had a chance to start it yet. I'm hoping to be able to get back to that
project soon, though.
- Ted