| tmore ext2 fixes - plan9port - [fork] Plan 9 from user space | |
| git clone git://src.adamsgaard.dk/plan9port | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit c1a4592dd111d1c80c320d854d3a4a80d56d3adf | |
| parent 9bbcb80d35f8868a90603368078f91ba56cfe0d3 | |
| 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(-) | |
| --- | |
| 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 inode… | |
| + (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… | |
| */ | |
| - 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: bitbloc… | |
| + boff, bno/fs->blockspergroup, | |
| + (int)bitblock, | |
| + bitpos, | |
| + boff>>3, | |
| + bits[boff>>3]); | |
| blockput(bitb); | |
| return nil; | |
| } |