• Jie Liu's avatar
    xfs: Don't keep silent if sunit/swidth can not be changed via mount · 34d7f603
    Jie Liu authored
    As per the mount man page, sunit and swidth can be changed via
    mount options.  For XFS, on the face of it, those options seems
    works if the specified alignments is properly, e.g.
    # mount -o sunit=4096,swidth=8192 /dev/sdb1 /mnt
    # mount | grep sdb1
    /dev/sdb1 on /mnt type xfs (rw,sunit=4096,swidth=8192)
    
    However, neither sunit nor swidth is shown from the xfs_info output.
    # xfs_info /mnt
    meta-data=/dev/sdb1    isize=256    agcount=4, agsize=262144 blks
             =             sectsz=512   attr=2
    data     =             bsize=4096   blocks=1048576, imaxpct=25
             =             sunit=0      swidth=0 blks
    		       ^^^^^^^^^^^^^^^^^^^^^^^^^^
    naming   =version 2    bsize=4096   ascii-ci=0
    log      =internal     bsize=4096   blocks=2560, version=2
             =             sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none         extsz=4096   blocks=0, rtextents=0
    
    The reason is that the alignment can only be changed if the relevant
    super block is already configured with alignments, otherwise, the
    given value is silently ignored.
    
    With this fix, the attempt to mount a storage without strip alignment
    setup on a super block will get an error with a warning in syslog to
    indicate the true cause, e.g.
    # mount -o sunit=4096,swidth=8192 /dev/sdb1 /mnt
    mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
           missing codepage or helper program, or other error
           In some cases useful info is found in syslog - try
    	dmesg | tail  or so
    .......
    XFS (sdb1): cannot change alignment: superblock does not support data
    alignment
    Signed-off-by: default avatarJie Liu <jeff.liu@oracle.com>
    Cc: Mark Tinguely <tinguely@sgi.com>
    Cc: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
    Signed-off-by: default avatarBen Myers <bpm@sgi.com>
    34d7f603
xfs_mount.c 69.9 KB