xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Structure needs cleaning
Andreas Klauer
Andreas.Klauer at metamorpher.de
Thu Jul 18 06:04:37 CDT 2013
Hi,
having some problems growing XFS, using Linux 3.10.1 x86_64, xfsprogs 3.1.11.
The filesystem is on LVM, and I made the volume larger. I did this several
times before and it never causes any issue.
This time, trying to grow the filesystem failed and it seemed corrupt.
xfs_repair restored its original size somehow (even though shrinking is
not supposed to be possible?). Unfortunately I did not save the output
of the commands the first time around, but the issue is reproducable
in its current state.
If anyone could tell me what I'm doing wrong?
# mount
> /dev/mapper/lvm-xfs on /mnt/xfs type xfs (rw)
# df -h
> /dev/mapper/lvm-xfs 2.0T 1.9T 102G 95% /mnt/xfs
# blockdev --getsize64 /dev/lvm/xfs
> 2306397437952
# xfs_info /mnt/xfs
> meta-data=/dev/mapper/lvm-xfs isize=256 agcount=16, agsize=32768000 blks
> = sectsz=4096 attr=2
> data = bsize=4096 blocks=524288000, imaxpct=25
> = sunit=0 swidth=0 blks
> naming =version 2 bsize=4096 ascii-ci=0
> log =internal bsize=4096 blocks=32768, version=2
> = sectsz=4096 sunit=1 blks, lazy-count=1
> realtime =none extsz=4096 blocks=0, rtextents=0
# xfs_growfs /mnt/xfs
> meta-data=/dev/mapper/lvm-xfs isize=256 agcount=16, agsize=32768000 blks
> = sectsz=4096 attr=2
> data = bsize=4096 blocks=524288000, imaxpct=25
> = sunit=0 swidth=0 blks
> naming =version 2 bsize=4096 ascii-ci=0
> log =internal bsize=4096 blocks=32768, version=2
> = sectsz=4096 sunit=1 blks, lazy-count=1
> realtime =none extsz=4096 blocks=0, rtextents=0
> xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Structure needs cleaning
> data blocks changed from 524288000 to 563085312
# umount /mnt/xfs
# mount /dev/lvm/xfs /mnt/xfs
# df -h
> /dev/mapper/lvm-xfs 2.1T 1.9T 250G 89% /mnt/xfs
# xfs_info /mnt/xfs
> meta-data=/dev/mapper/lvm-xfs isize=256 agcount=18, agsize=32768000 blks
> = sectsz=4096 attr=2
> data = bsize=4096 blocks=563085312, imaxpct=25
> = sunit=0 swidth=0 blks
> naming =version 2 bsize=4096 ascii-ci=0
> log =internal bsize=4096 blocks=32768, version=2
> = sectsz=4096 sunit=1 blks, lazy-count=1
> realtime =none extsz=4096 blocks=0, rtextents=0
# umount /mnt/xfs
# xfs_repair -v /dev/lvm/xfs
> Phase 1 - find and verify superblock...
> writing modified primary superblock
> Phase 2 - using internal log
> - zero log...
> - scan filesystem freespace and inode maps...
> primary/secondary superblock 4 conflict - AG superblock geometry info conflicts with filesystem geometry
> reset bad sb for ag 4
> primary/secondary superblock 2 conflict - AG superblock geometry info conflicts with filesystem geometry
> reset bad sb for ag 2
> primary/secondary superblock 1 conflict - AG superblock geometry info conflicts with filesystem geometry
> reset bad sb for ag 1
> primary/secondary superblock 3 conflict - AG superblock geometry info conflicts with filesystem geometry
> reset bad sb for ag 3
> sb_icount 0, counted 8704
> sb_ifree 0, counted 854
> sb_fdblocks 0, counted 26540703
> - found root inode chunk
> Phase 3 - for each AG...
> - scan and clear agi unlinked lists...
> - process known inodes and perform inode discovery...
> - agno = 0
> - agno = 1
> - agno = 2
> - agno = 3
> - agno = 4
> - agno = 5
> - agno = 6
> - agno = 7
> - agno = 8
> - agno = 9
> - agno = 10
> - agno = 11
> - agno = 12
> - agno = 13
> - agno = 14
> - agno = 15
> - process newly discovered inodes...
> Phase 4 - check for duplicate blocks...
> - setting up duplicate extent list...
> - check for inodes claiming duplicate blocks...
> - agno = 0
> - agno = 1
> - agno = 2
> - agno = 3
> - agno = 4
> - agno = 5
> - agno = 6
> - agno = 7
> - agno = 8
> - agno = 9
> - agno = 10
> - agno = 11
> - agno = 12
> - agno = 13
> - agno = 14
> - agno = 15
> Phase 5 - rebuild AG headers and trees...
> - reset superblock...
> Phase 6 - check inode connectivity...
> - resetting contents of realtime bitmap and summary inodes
> - traversing filesystem ...
> - traversal finished ...
> - moving disconnected inodes to lost+found ...
> Phase 7 - verify and correct link counts...
> done
# mount /dev/lvm/xfs /mnt/xfs
# df -h
> /dev/mapper/lvm-xfs 2.0T 1.9T 102G 95% /mnt/xfs
# xfs_growfs /mnt/xfs
> meta-data=/dev/mapper/lvm-xfs isize=256 agcount=16, agsize=32768000 blks
> = sectsz=4096 attr=2
> data = bsize=4096 blocks=524288000, imaxpct=25
> = sunit=0 swidth=0 blks
> naming =version 2 bsize=4096 ascii-ci=0
> log =internal bsize=4096 blocks=32768, version=2
> = sectsz=4096 sunit=1 blks, lazy-count=1
> realtime =none extsz=4096 blocks=0, rtextents=0
> xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Structure needs cleaning
> data blocks changed from 524288000 to 563085312
Back to square one and rinse and repeat.
1) What does "XFS_IOC_FSGROWFSDATA xfsctl failed: Structure needs cleaning" mean?
2) Should I reformat or any way to repair/grow properly?
Thanks
Andreas Klauer
More information about the xfs
mailing list