summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2001-05-18 22:16:28 +0000
committermckusick <mckusick@FreeBSD.org>2001-05-18 22:16:28 +0000
commitc8947d0f034d9fb8d3dda79725ce5e53f69d6bcf (patch)
tree4a30c2b48ce8bce50180e7eaa73015a8370d1703 /sys
parent1ca07564dd4fb500feefd91a84c1df6e93e095ce (diff)
downloadFreeBSD-src-c8947d0f034d9fb8d3dda79725ce5e53f69d6bcf.zip
FreeBSD-src-c8947d0f034d9fb8d3dda79725ce5e53f69d6bcf.tar.gz
Must be a bit less aggressive about freeing pagedep structures.
Obtained from: Robert Watson <rwatson@FreeBSD.org> and Matthew Jacob <mjacob@feral.com>
Diffstat (limited to 'sys')
-rw-r--r--sys/ufs/ffs/ffs_softdep.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index 044324e..efa0966 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -2029,7 +2029,7 @@ free_newdirblk(newdirblk)
for (i = 0; i < DAHASHSZ; i++)
if (LIST_FIRST(&pagedep->pd_diraddhd[i]) != NULL)
break;
- if (i == DAHASHSZ) {
+ if (i == DAHASHSZ && (pagedep->pd_state & ONWORKLIST) == 0) {
LIST_REMOVE(pagedep, pd_hash);
WORKITEM_FREE(pagedep, D_PAGEDEP);
}
OpenPOWER on IntegriCloud