[PATCH] fix xfs_fsr insufficient space check
Chris Wedgwood
cw at f00f.org
Fri Jan 2 04:03:06 CST 2009
The xfs_fsr insufficient check should consider the blocks used not the
file length. Without this change it is not possible to reorganize
sparse files when file size exceeds the free space.
Signed-off-by: Chris Wedgwood <cw at f00f.org>
--- fsr/xfs_fsr.c.orig 2009-01-02 01:51:03.049181411 -0800
+++ fsr/xfs_fsr.c 2009-01-02 01:53:56.297180891 -0800
@@ -912,9 +912,9 @@
}
bsize = vfss.f_frsize ? vfss.f_frsize : vfss.f_bsize;
- if (statp->bs_size > ((vfss.f_bfree * bsize) - minimumfree)) {
+ if ((statp->bs_blksize * statp->bs_blocks) > ((vfss.f_bfree * bsize) - minimumfree)) {
fsrprintf(_("insufficient freespace for: %s: "
- "size=%lld: ignoring\n"), fname, statp->bs_size);
+ "size=%lld: ignoring\n"), fname, statp->bs_blksize * statp->bs_blocks);
return 1;
}
More information about the xfs
mailing list