On Mon, Aug 25, 2008 at 11:39:31AM -0400, Ed Cashin wrote:
> Dave Chinner, hello.
> Your fix for the counters that had been preventing an XFS from growing
> by more than two terabytes went into 2.6.21, after the introduction of
> the per-cpu in-core superblock counters. The per-cpu in-core
> superblock counters are not in the latest version of the long-lived
> stable kernel 2.6.16.y, maintained by Adrian Bunk.
> The problem with growing by more than two terabytes appears to be
> there, though. The 22.214.171.124 kernel will not allow me to grow an XFS
> by, e.g., 10 terabytes, so xfs_growfs does not report any change in
> the data blocks.
> I backported your fix,
> commit 20f4ebf2bf2f57c1a9abb3655391336cc90314b3
> Author: David Chinner <dgc@xxxxxxx>
> Date: Sat Feb 10 18:36:10 2007 +1100
> [XFS] Make growfs work for amounts greater than 2TB
> The free block modification code has a 32bit interface, limiting the
> the filesystem can be grown even on 64 bit machines. On 32 bit
> there are other 32bit variables in transaction structures and
> that need to be expanded to allow this to work.
> SGI-PV: 959978
> SGI-Modid: xfs-linux-melb:xfs-kern:27894a
> Signed-off-by: David Chinner <dgc@xxxxxxx>
> Signed-off-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> Signed-off-by: Tim Shimmin <tes@xxxxxxx>
> ... to the 2.6.16.y git tree, and the result is included below. When
> I apply this backported fix to 126.96.36.199, I can grow an online XFS by
> 10 terabytes without any trouble.
> Do you see any problems with this backport? If not, I will submit it
> for inclusion in the next 2.6.16.y release.
I suggest you make sure it passes test 078 in the xfsqa suite (part
of the xfs-cmds tree) as that tests all the nasty growfs corner
cases. You'll need to test it on 32 bit and 64 bit machines....
If it passes that then I don't see any problems - SGI backported
this for sles10 which is based on 2.6.16 a long time ago.