diff options
author | mckusick <mckusick@FreeBSD.org> | 2001-05-18 22:16:28 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2001-05-18 22:16:28 +0000 |
commit | c8947d0f034d9fb8d3dda79725ce5e53f69d6bcf (patch) | |
tree | 4a30c2b48ce8bce50180e7eaa73015a8370d1703 | |
parent | 1ca07564dd4fb500feefd91a84c1df6e93e095ce (diff) | |
download | FreeBSD-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>
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 2 |
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); } |