David Chinner wrote:
On Thu, Nov 02, 2006 at 06:26:08PM +0100, Christian Guggenberger wrote:
Hi,
a colleague recently tried to grow a 16 TB filesystem (x86, 32bit) on
top of lvm2 to 17TB. (I am not even sure if that's supposed work with
linux-2.6, 32bit)
Not supported - any metadata access past 16TB will wrap the 32 bit page
cache
index for the metadata address space and you'll corrupt the filesystem.
Ohhhh right. I've been in x86_64 land for too long, sorry for the earlier
false assertion.... :(
xfs guys, if it's not there already (and I don't see it from a quick look..)
growfs -really-
should refuse (in the kernel) to grow a filesystem past 16T on a 32-bit
machine, just as we
refuse to mount one. something like this in xfs_growfs_data_private:
# if XFS_BIG_BLKNOS /* Limited by ULONG_MAX of page cache index */
if (unlikely(
(nb >> (PAGE_SHIFT - sbp->sb_blocklog)) > ULONG_MAX) {
# else /* Limited by UINT_MAX of sectors */
if (unlikely(
(nb << (sbp->sb_blocklog - BBSHIFT)) > UINT_MAX) {
# endif
cmn_err(CE_WARN,
"new filesystem size too large for this system.");
return XFS_ERROR(E2BIG);
}
and something similar in xfs_growfs_rt ?
-Eric