Re: Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Andreas Dilger
On Feb 11, 2005 21:39 +, Stephen C. Tweedie wrote: > ...i_blocks is counted in fs blocksize units, so we're nowhere near > overflowing that. It's only when stat() converts it to st_blocks' > 512-byte units that we get into trouble within the kernel. Umm, I don't think so. ext3 i_blocks is

Re: Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Stephen C. Tweedie
Hi, On Fri, 2005-02-11 at 21:27, Andreas Dilger wrote: > > Trouble is, that limit *should* be an i_blocks limit, because i_blocks > > is still 32-bits, and (more importantly) is multiplied by the fs > > blocksize / 512 in stat(2) to return st_blocks in 512-byte chunks. > > Overflow 2^32 sectors

Re: Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Andreas Dilger
On Feb 11, 2005 20:52 +, Stephen C. Tweedie wrote: > /* > * Maximal file size. There is a direct, and {,double-,triple-}indirect > * block limit, and also a limit of (2^32 - 1) 512-byte sectors in i_blocks. > * We need to be 1 filesystem block less than the 2^32 sector limit. > */ > >

Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Stephen C. Tweedie
Hi all, In testing large (>4TB) device support on 2.6, I've been using a simple write/verify test to check both block device and regular file correctness. Set to write 1MB poison patterns for the whole of a file until EOF is encountered, it worked just fine on ext3: the file got a short write

Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Stephen C. Tweedie
Hi all, In testing large (4TB) device support on 2.6, I've been using a simple write/verify test to check both block device and regular file correctness. Set to write 1MB poison patterns for the whole of a file until EOF is encountered, it worked just fine on ext3: the file got a short write on

Re: Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Andreas Dilger
On Feb 11, 2005 20:52 +, Stephen C. Tweedie wrote: /* * Maximal file size. There is a direct, and {,double-,triple-}indirect * block limit, and also a limit of (2^32 - 1) 512-byte sectors in i_blocks. * We need to be 1 filesystem block less than the 2^32 sector limit. */ Trouble

Re: Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Stephen C. Tweedie
Hi, On Fri, 2005-02-11 at 21:27, Andreas Dilger wrote: Trouble is, that limit *should* be an i_blocks limit, because i_blocks is still 32-bits, and (more importantly) is multiplied by the fs blocksize / 512 in stat(2) to return st_blocks in 512-byte chunks. Overflow 2^32 sectors in

Re: Ext2/3 32-bit stat() wrap for ~2TB files

2005-02-11 Thread Andreas Dilger
On Feb 11, 2005 21:39 +, Stephen C. Tweedie wrote: ...i_blocks is counted in fs blocksize units, so we're nowhere near overflowing that. It's only when stat() converts it to st_blocks' 512-byte units that we get into trouble within the kernel. Umm, I don't think so. ext3 i_blocks is