Steve Lord wrote:
>
> It has always been possible for inode numbers in XFS to be more than 32
> bits in size. This creates large problems for the rest of linux. This
> change restricts the allocation of inodes in an xfs filesystem to that
> part of the fs which will keep the inodes within 32 bits (basically
> the bottom 1 Tbyte with default mkfs parameters). For these large
> filesystems it also makes xfs file data prefer being higher up the
> filesystem to retain space for inodes and metadata in the lower
> portion.
>
> There is no on disk format change for this, but you will need to rebuild
> mkfs to build a filesystem which can use it - there is some automatic
> inode sizing code in mkfs which worked around the problem.
Is there any chance a current filesystem on x86 2.4.x linux, disk sizes
under 100 GB, would already have nodes greater than 32 bit? I'm assuming
that upgrading won't break existing filesystems, i.e., do I need to fear
using the 32 bit restrictions by mixing it with my current filesystem?
I'm assuming that any ordinary size system (less than 1TB) will never
have an inode above the 32 bit boundary. If not, I'd love a tool to
sample all inodes and report the highest inode number, along with a
simple "Exceeds 32 bits" or not type statement.
D. Stimits, stimits@xxxxxxxxxx
>
> Date: Mon Dec 3 09:52:09 PST 2001
> Workarea: jen.americas.sgi.com:/src/lord/xfs-linux.2.4
>
> The following file(s) were checked into:
> bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
>
> Modid: 2.4.x-xfs:slinx:107651a
> linux/fs/xfs/xfsidbg.c - 1.166
> - Add new fields to perag dump
>
> linux/fs/xfs/xfs_ialloc.c - 1.150
> - For inode allocation skip allocation groups which would place an
> inode
> out of range and make it larger than 32 bits.
>
> linux/fs/xfs/xfs_ag.h - 1.40
> - Add new fields to perag structure
>
> linux/fs/xfs/xfs_vfsops.c - 1.328
> - Add in XFS_MOUNT_32BITINODES mount option
>
> linux/fs/xfs/xfs_clnt.h - 1.25
> - Define XFSMNT_32BITINODES flag
>
> linux/fs/xfs/xfs_mount.h - 1.131
> - Prototype for xfs_initialize_perag
>
> linux/fs/xfs/xfs_mount.c - 1.264
> - Add xfs_initialize_perag to calculate the maximum ag which is safe
> for
> inodes when operating in 32 bit mode.
>
> linux/fs/xfs/xfs_alloc.c - 1.144
> - Changes for rotating file data through allocation groups when
> 32 bit inode code is enabled.
>
> linux/fs/xfs/xfs_alloc.h - 1.48
> - New flags for data allocation mode
>
> linux/fs/xfs/xfs_fsops.c - 1.71
> - Reinitialize the xfs_initialize_perag after a growfs
>
> linux/fs/xfs/xfs_bmap.c - 1.278
> - Pass in new flag to allocator indicating if this is the initial
> data allocation for a file or not.
>
> linux/fs/xfs/linux/xfs_super.c - 1.145
> - Add 32 bit inode flag to mount options
>
> cmd/xfsprogs/mkfs/xfs_mkfs.c - 1.17
> - Comment out automatic inode size selection code in mkfs
|