diff --git a/sys/ufs/lfs/lfs_alloc.c b/sys/ufs/lfs/lfs_alloc.c index 1d2c5548c379..3fdfc13c387a 100644 --- a/sys/ufs/lfs/lfs_alloc.c +++ b/sys/ufs/lfs/lfs_alloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_alloc.c,v 1.94 2006/05/14 21:32:45 elad Exp $ */ +/* $NetBSD: lfs_alloc.c,v 1.95 2006/07/06 22:27:19 perseant Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: lfs_alloc.c,v 1.94 2006/05/14 21:32:45 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_alloc.c,v 1.95 2006/07/06 22:27:19 perseant Exp $"); #if defined(_KERNEL_OPT) #include "opt_quota.h" @@ -732,6 +732,9 @@ lfs_order_freelist(struct lfs *fs) struct buf *bp; ino_t ino, firstino, lastino, maxino; + ASSERT_NO_SEGLOCK(fs); + lfs_seglock(fs, SEGM_PROT); + maxino = ((fs->lfs_ivnode->v_size >> fs->lfs_bshift) - fs->lfs_cleansz - fs->lfs_segtabsz) * fs->lfs_ifpb; fs->lfs_ino_bitmap = (lfs_bm_t *) @@ -773,4 +776,6 @@ lfs_order_freelist(struct lfs *fs) LFS_PUT_HEADFREE(fs, cip, bp, firstino); LFS_PUT_TAILFREE(fs, cip, bp, lastino); + + lfs_segunlock(fs); }