xfs_fsr not defragmenting: 'could not open tmp file'

Richard Troxell
2009-02-13T03:16:14Z

I am trying out the xfs_fsr utility, but am not having much luck getting it to actually do anything. Running with -vd, I see a flood of 'no such file messages' like the following.

ino=570425612
ino=570425612 extents=12 can_save=11 tmp=/disk08-01/.fsr/ag329/tmp22898
could not open tmp file: /disk08-01/.fsr/ag329/tmp22898: No such file or directory

Just for the fun of it, I tried creating some of these directories, only to find the operation bails in the ioctl.
ino=570425630
ino=570425630 extents=13 can_save=12 tmp=/disk08-01/.fsr/ag328/tmp22898
DEBUG: fsize=445760 blsz_dio=445440 d_min=512 d_max=2147483136 pgsz=4096
Temporary file has 1 extents (13 in original)
XFS_IOC_SWAPEXT failed: ino=570425630: Invalid argument

xfs_fsr is coming from xfsprogs 3.0.0
Linux kernel is 2.6.23.9
Architecture is x86_64, but xfs_fsr is 32bit.

I did some searching for through past post for any similiar cases, but could not find any. Here are some other useful outputs that I found from somewhat related posts.

# xfs_db -c frag -f /dev/sdp2
actual 38348, ideal 1318, fragmentation factor 96.56%

Most of the files appear to have single extent layouts, but there are a few exceptions.

# xfs_db -c "frag -v" -f /dev/sdp2
...
inode 570425622 actual 957 ideal 1
...

I did a quick check of the 'bmap' of the inode listed above and the file looks non-sparse (all 'flag 0')

Thanks!