diff options
author | Bob Beck <beck@cvs.openbsd.org> | 2014-04-22 20:14:40 +0000 |
---|---|---|
committer | Bob Beck <beck@cvs.openbsd.org> | 2014-04-22 20:14:40 +0000 |
commit | aa57c42fd8cdee1b458f2619cc31d466bc45d64b (patch) | |
tree | 6248ed745d25c8e9ff816615e418689456220e3b /sys/ufs/ffs | |
parent | 8e0b0293b8c5a032ffc9ebd4f99a56bd7d34ae94 (diff) |
Fix issue where we could jump into getdirtybuf without splbio() on a retry
that probably crashed espie.
ok tedu@
Diffstat (limited to 'sys/ufs/ffs')
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 4c6efb6d4cc..cb4ea661f6c 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ffs_softdep.c,v 1.125 2014/02/04 01:04:03 tedu Exp $ */ +/* $OpenBSD: ffs_softdep.c,v 1.126 2014/04/22 20:14:39 beck Exp $ */ /* * Copyright 1998, 2000 Marshall Kirk McKusick. All Rights Reserved. @@ -5151,9 +5151,9 @@ flush_pagedep_deps(struct vnode *pvp, struct mount *mp, if ((inodedep->id_state & DEPCOMPLETE) == 0) { bp = inodedep->id_buf; gotit = getdirtybuf(bp, MNT_WAIT); - FREE_LOCK(&lk); if (gotit == -1) goto retry; + FREE_LOCK(&lk); if (gotit && (error = bwrite(bp)) != 0) break; ACQUIRE_LOCK(&lk); |