set saveaddr to NULL, otherwise will re-free space next time the buffer
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 4 Mar 1992 03:49:07 +0000 (19:49 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 4 Mar 1992 03:49:07 +0000 (19:49 -0800)
gets used; change negative byte counts to printf's for now

SCCS-vsn: sys/ufs/lfs/lfs_segment.c 7.14

usr/src/sys/ufs/lfs/lfs_segment.c

index fc92e50..d4960f5 100644 (file)
@@ -4,7 +4,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)lfs_segment.c       7.13 (Berkeley) %G%
+ *     @(#)lfs_segment.c       7.14 (Berkeley) %G%
  */
 
 #include <sys/param.h>
  */
 
 #include <sys/param.h>
@@ -388,7 +388,8 @@ lfs_writeinode(fs, sp, ip)
                LFS_SEGENTRY(sup, fs, datosn(fs, daddr), bp);
 #ifdef DIAGNOSTIC
                if (sup->su_nbytes < sizeof(struct dinode))
                LFS_SEGENTRY(sup, fs, datosn(fs, daddr), bp);
 #ifdef DIAGNOSTIC
                if (sup->su_nbytes < sizeof(struct dinode))
-                       panic("lfs: negative bytes (segment %d)\n",
+                       /* XXX -- Change to a panic. */
+                       printf("lfs: negative bytes (segment %d)\n",
                            datosn(fs, daddr));
 #endif
                sup->su_nbytes -= sizeof(struct dinode);
                            datosn(fs, daddr));
 #endif
                sup->su_nbytes -= sizeof(struct dinode);
@@ -537,7 +538,8 @@ lfs_updatemeta(fs, sp, vp, lbp, bpp, nblocks)
                        LFS_SEGENTRY(sup, fs, datosn(fs, daddr), bp);
 #ifdef DIAGNOSTIC
                        if (sup->su_nbytes < fs->lfs_bsize)
                        LFS_SEGENTRY(sup, fs, datosn(fs, daddr), bp);
 #ifdef DIAGNOSTIC
                        if (sup->su_nbytes < fs->lfs_bsize)
-                               panic("lfs: negative bytes (segment %d)\n",
+                               /* XXX -- Change to a panic. */
+                               printf("lfs: negative bytes (segment %d)\n",
                                    datosn(fs, daddr));
 #endif
                        sup->su_nbytes -= fs->lfs_bsize;
                                    datosn(fs, daddr));
 #endif
                        sup->su_nbytes -= fs->lfs_bsize;
@@ -887,6 +889,7 @@ lfs_callback(bp)
        if (bp->b_saveaddr) {
                free(bp->b_un.b_addr, M_SEGMENT);
                bp->b_un.b_addr = bp->b_saveaddr;
        if (bp->b_saveaddr) {
                free(bp->b_un.b_addr, M_SEGMENT);
                bp->b_un.b_addr = bp->b_saveaddr;
+               bp->b_saveaddr = NULL;
        }
        brelse(bp);
 }
        }
        brelse(bp);
 }