Messages in this thread | | | Date | Wed, 7 Jan 1998 10:18:04 +0100 | From | Martin von Loewis <> | Subject | Re: 2G file size limitation question |
| |
> - why is there a 2G limit?
This should go into some FAQ/HOWTO ... The limit comes from this line in <linux/ext2_fs.h> __u32 i_size; /* Size in bytes */
> - can the 2G limit be _safely_ increased (to, say, about 5G)? > - if so, what changes are needed in the ext2 code to do it?
You cannot safely change this to __u64, as you'll break the lay-out of struct ext2_inode, then. About the best proposal I've seen is the one of Albert Cahalan. You can use another 16 of the reserved bits to go to an 48 bit inode size. You'd have to make sure you don't use anything that's used by another system already.
I don't recall the details. One possibility is to recycle the fields for the currently unimplemented fragmentation support, which would give you enough free bits. Apart from this, it seems the Hurd already occupies everything else.
In order to do this safely, you would have to mark the filesystem with one of the incompatible flags (s_feature_incompat), and then support the other size bits all over the place.
Good luck, Martin
| |