tmore ext2 fixes - plan9port - [fork] Plan 9 from user space
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit c1a4592dd111d1c80c320d854d3a4a80d56d3adf
DIR parent 9bbcb80d35f8868a90603368078f91ba56cfe0d3
HTML Author: rsc <devnull@localhost>
Date: Thu, 15 Jun 2006 05:16:59 +0000
more ext2 fixes
Diffstat:
M src/libdiskfs/ext2.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
---
DIR diff --git a/src/libdiskfs/ext2.c b/src/libdiskfs/ext2.c
t@@ -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;
t@@ -113,9 +114,19 @@ ext2blockread(Fsys *fsys, u64int vbno)
}
/*
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){
t@@ -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;
}