Re: mount failed after xfs_growfs beyond 16 TB

Eric Sandeen
2006-11-03T14:55:41Z

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