• E
    xfs: fix up inode32/64 (re)mount handling · 12c3f05c
    Eric Sandeen 提交于
    inode32/inode64 allocator behavior with respect to mount, remount
    and growfs is a little tricky.
    
    The inode32 mount option should only enable the inode32 allocator
    heuristics if the filesystem is large enough for 64-bit inodes to
    exist.  Today, it has this behavior on the initial mount, but a
    remount with inode32 unconditionally changes the allocation
    heuristics, even for a small fs.
    
    Also, an inode32 mounted small filesystem should transition to the
    inode32 allocator if the filesystem is subsequently grown to a
    sufficient size.  Today that does not happen.
    
    This patch consolidates xfs_set_inode32 and xfs_set_inode64 into a
    single new function, and moves the "is the maximum inode number big
    enough to matter" test into that function, so it doesn't rely on the
    caller to get it right - which remount did not do, previously.
    Signed-off-by: NEric Sandeen <sandeen@redhat.com>
    Reviewed-by: NBrian Foster <bfoster@redhat.com>
    Signed-off-by: NDave Chinner <david@fromorbit.com>
    12c3f05c
xfs_mount.h 13.6 KB