Commit Diff


commit - 9bbcb80d35f8868a90603368078f91ba56cfe0d3
commit + c1a4592dd111d1c80c320d854d3a4a80d56d3adf
blob - ddd3d7b87d90290a7001c427c115aa53d3a28d05
blob + 87437f849749221813592e8de6b12c5548a8d6e2
--- src/libdiskfs/ext2.c
+++ src/libdiskfs/ext2.c
@@ -88,7 +88,8 @@ ext2blockread(Fsys *fsys, u64int vbno)
 	Group *g;
 	Block *gb;
 	uchar *bits;
-	u32int bno, boff, bitpos;
+	u32int bno, boff, bitblock;
+	u64int bitpos;
 	Ext2 *fs;
 
 	fs = fsys->priv;
@@ -112,10 +113,20 @@ ext2blockread(Fsys *fsys, u64int vbno)
 		return nil;
 	}
 /*
+	if(debug)
+		fprint(2, "ext2 group %d: bitblock=%ud inodebitblock=%ud inodeaddr=%ud freeblocks=%ud freeinodes=%ud useddirs=%ud\n",
+			(int)(bno/fs->blockspergroup),
+			g->bitblock,
+			g->inodebitblock,
+			g->inodeaddr,
+			g->freeblockscount,
+			g->freeinodescount,
+			g->useddirscount);
 	if(debug)
 		fprint(2, "group %d bitblock=%d...", bno/fs->blockspergroup, g->bitblock);
 */
-	bitpos = (u64int)g->bitblock*fs->blocksize;
+	bitblock = g->bitblock;
+	bitpos = (u64int)bitblock*fs->blocksize;
 	blockput(gb);
 
 	if((bitb = diskread(fs->disk, fs->blocksize, bitpos)) == nil){
@@ -127,7 +138,12 @@ ext2blockread(Fsys *fsys, u64int vbno)
 	boff = bno%fs->blockspergroup;
 	if((bits[boff>>3] & (1<<(boff&7))) == 0){
 		if(debug)
-			fprint(2, "block %d not allocated...", bno);
+			fprint(2, "block %d not allocated in group %d: bitblock %d/%lld bits[%d] = %#x\n",
+				boff, bno/fs->blockspergroup, 
+				(int)bitblock,
+				bitpos,
+				boff>>3,
+				bits[boff>>3]);
 		blockput(bitb);
 		return nil;
 	}