text2 fixes (Steve VanDeBogart) - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 9bbcb80d35f8868a90603368078f91ba56cfe0d3
parent 751ff8ab61cc89cc7c351e1874720a61b865077f
Author: rsc 
Date:   Thu, 15 Jun 2006 04:35:57 +0000

ext2 fixes (Steve VanDeBogart)

Diffstat:
  M src/libdiskfs/ext2.c                |       9 +++++----

1 file changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/src/libdiskfs/ext2.c b/src/libdiskfs/ext2.c
t@@ -88,7 +88,7 @@ ext2blockread(Fsys *fsys, u64int vbno)
         Group *g;
         Block *gb;
         uchar *bits;
-        u32int bno, boff;
+        u32int bno, boff, bitpos;
         Ext2 *fs;
 
         fs = fsys->priv;
t@@ -115,11 +115,12 @@ ext2blockread(Fsys *fsys, u64int vbno)
         if(debug)
                 fprint(2, "group %d bitblock=%d...", bno/fs->blockspergroup, g->bitblock);
 */
+        bitpos = (u64int)g->bitblock*fs->blocksize;
+        blockput(gb);
 
-        if((bitb = diskread(fs->disk, fs->blocksize, (u64int)g->bitblock*fs->blocksize)) == nil){
+        if((bitb = diskread(fs->disk, fs->blocksize, bitpos)) == nil){
                 if(debug)
                         fprint(2, "loading bitblock: %r...");
-                blockput(gb);
                 return nil;
         }
         bits = bitb->data;
t@@ -128,9 +129,9 @@ ext2blockread(Fsys *fsys, u64int vbno)
                 if(debug)
                         fprint(2, "block %d not allocated...", bno);
                 blockput(bitb);
-                blockput(gb);
                 return nil;
         }
+        blockput(bitb);
 
         bno += fs->firstblock;
         return diskread(fs->disk, fs->blocksize, (u64int)bno*fs->blocksize);