[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