SCCS-vsn: sys/ufs/lfs/lfs_segment.c 7.15
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)lfs_segment.c 7.14 (Berkeley) %G%
+ * @(#)lfs_segment.c 7.15 (Berkeley) %G%
*/
#include <sys/param.h>
*/
#include <sys/param.h>
*/
s = splbio();
if (--fs->lfs_iocount && (error =
*/
s = splbio();
if (--fs->lfs_iocount && (error =
- tsleep(&fs->lfs_iocount, PRIBIO + 1, "lfs vflush", 0)))
+ tsleep(&fs->lfs_iocount, PRIBIO + 1, "lfs vflush", 0))) {
+ free(sp->bpp, M_SEGMENT);
+ free(sp, M_SEGMENT);
+ /*
+ * XXX
+ * Should be writing a checkpoint?
+ */
free(sp->bpp, M_SEGMENT);
free(sp, M_SEGMENT);
free(sp->bpp, M_SEGMENT);
free(sp, M_SEGMENT);
--fs->lfs_iocount;
if (do_ckp) {
if (fs->lfs_iocount && (error =
--fs->lfs_iocount;
if (do_ckp) {
if (fs->lfs_iocount && (error =
- tsleep(&fs->lfs_iocount, PRIBIO + 1, "lfs sync", 0)))
+ tsleep(&fs->lfs_iocount, PRIBIO + 1, "lfs sync", 0))) {
+ free(sp->bpp, M_SEGMENT);
+ free(sp, M_SEGMENT);
splx(s);
lfs_writesuper(fs, sp);
} else
splx(s);
lfs_writesuper(fs, sp);
} else