diff --git a/fs/ufs/balloc.c b/fs/ufs/balloc.c
index 7a4735f..62193db 100644
--- a/fs/ufs/balloc.c
+++ b/fs/ufs/balloc.c
@@ -395,7 +395,6 @@
 		if (result) {
 			*p = cpu_to_fs32(sb, result);
 			*err = 0;
-			inode->i_blocks += count << uspi->s_nspfshift;
 			UFS_I(inode)->i_lastfrag = max_t(u32, UFS_I(inode)->i_lastfrag, fragment + count);
 		}
 		unlock_super(sb);
@@ -409,7 +408,6 @@
 	result = ufs_add_fragments (inode, tmp, oldcount, newcount, err);
 	if (result) {
 		*err = 0;
-		inode->i_blocks += count << uspi->s_nspfshift;
 		UFS_I(inode)->i_lastfrag = max_t(u32, UFS_I(inode)->i_lastfrag, fragment + count);
 		unlock_super(sb);
 		UFSD("EXIT, result %u\n", result);
@@ -444,7 +442,6 @@
 
 		*p = cpu_to_fs32(sb, result);
 		*err = 0;
-		inode->i_blocks += count << uspi->s_nspfshift;
 		UFS_I(inode)->i_lastfrag = max_t(u32, UFS_I(inode)->i_lastfrag, fragment + count);
 		unlock_super(sb);
 		if (newcount < request)
diff --git a/fs/ufs/truncate.c b/fs/ufs/truncate.c
index 716183d..b860a29 100644
--- a/fs/ufs/truncate.c
+++ b/fs/ufs/truncate.c
@@ -112,9 +112,8 @@
 	frag1 = ufs_fragnum (frag1);
 	frag2 = ufs_fragnum (frag2);
 
-	inode->i_blocks -= (frag2-frag1) << uspi->s_nspfshift;
-	mark_inode_dirty(inode);
 	ufs_free_fragments (inode, tmp + frag1, frag2 - frag1);
+	mark_inode_dirty(inode);
 	frag_to_free = tmp + frag1;
 
 next1:
@@ -128,8 +127,7 @@
 			continue;
 
 		*p = 0;
-		inode->i_blocks -= uspi->s_nspb;
-		mark_inode_dirty(inode);
+
 		if (free_count == 0) {
 			frag_to_free = tmp;
 			free_count = uspi->s_fpb;
@@ -140,6 +138,7 @@
 			frag_to_free = tmp;
 			free_count = uspi->s_fpb;
 		}
+		mark_inode_dirty(inode);
 	}
 	
 	if (free_count > 0)
@@ -158,9 +157,9 @@
 	frag4 = ufs_fragnum (frag4);
 
 	*p = 0;
-	inode->i_blocks -= frag4 << uspi->s_nspfshift;
-	mark_inode_dirty(inode);
+
 	ufs_free_fragments (inode, tmp, frag4);
+	mark_inode_dirty(inode);
  next3:
 
 	UFSD("EXIT\n");
@@ -219,7 +218,7 @@
 			frag_to_free = tmp;
 			free_count = uspi->s_fpb;
 		}
-		inode->i_blocks -= uspi->s_nspb;
+
 		mark_inode_dirty(inode);
 	}
 
@@ -232,9 +231,9 @@
 	if (i >= uspi->s_apb) {
 		tmp = fs32_to_cpu(sb, *p);
 		*p = 0;
-		inode->i_blocks -= uspi->s_nspb;
-		mark_inode_dirty(inode);
+
 		ufs_free_blocks (inode, tmp, uspi->s_fpb);
+		mark_inode_dirty(inode);
 		ubh_bforget(ind_ubh);
 		ind_ubh = NULL;
 	}
@@ -295,9 +294,9 @@
 	if (i >= uspi->s_apb) {
 		tmp = fs32_to_cpu(sb, *p);
 		*p = 0;
-		inode->i_blocks -= uspi->s_nspb;
+
+		ufs_free_blocks(inode, tmp, uspi->s_fpb);
 		mark_inode_dirty(inode);
-		ufs_free_blocks (inode, tmp, uspi->s_fpb);
 		ubh_bforget(dind_bh);
 		dind_bh = NULL;
 	}
@@ -355,9 +354,9 @@
 	if (i >= uspi->s_apb) {
 		tmp = fs32_to_cpu(sb, *p);
 		*p = 0;
-		inode->i_blocks -= uspi->s_nspb;
+
+		ufs_free_blocks(inode, tmp, uspi->s_fpb);
 		mark_inode_dirty(inode);
-		ufs_free_blocks (inode, tmp, uspi->s_fpb);
 		ubh_bforget(tind_bh);
 		tind_bh = NULL;
 	}
