diff options
author | dg <dg@FreeBSD.org> | 1995-08-20 10:26:00 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-08-20 10:26:00 +0000 |
commit | 68e6a22cfc927472dc665196ff8099c88180d266 (patch) | |
tree | eaef1f7bf2e90f76c65db7e02058c12318faebf0 /sys/ufs | |
parent | 0ca978d61cb945dd547b39d7c5d813ab8ed01f48 (diff) | |
download | FreeBSD-src-68e6a22cfc927472dc665196ff8099c88180d266.zip FreeBSD-src-68e6a22cfc927472dc665196ff8099c88180d266.tar.gz |
Fixed mfs reboot panic by never returning failure from mfs_start().
Obtained from: 4.4BSD-Lite2
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/mfs/mfs_vfsops.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c index db2cbff..cc62f94 100644 --- a/sys/ufs/mfs/mfs_vfsops.c +++ b/sys/ufs/mfs/mfs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)mfs_vfsops.c 8.4 (Berkeley) 4/16/94 - * $Id: mfs_vfsops.c,v 1.9 1995/05/29 03:27:37 phk Exp $ + * $Id: mfs_vfsops.c,v 1.10 1995/08/11 11:31:18 davidg Exp $ */ #include <sys/param.h> @@ -272,7 +272,6 @@ mfs_start(mp, flags, p) register struct mfsnode *mfsp = VTOMFS(vp); register struct buf *bp; register caddr_t base; - int error = 0; base = mfsp->mfs_baseoff; while (mfsp->mfs_buflist != (struct buf *)(-1)) { @@ -287,11 +286,11 @@ mfs_start(mp, flags, p) * otherwise we will loop here, as tsleep will always return * EINTR/ERESTART. */ - if (error = tsleep((caddr_t)vp, mfs_pri, "mfsidl", 0)) - if (dounmount(mp, 0, p) != 0) - CLRSIG(p, CURSIG(p)); + if (tsleep((caddr_t)vp, mfs_pri, "mfsidl", 0) && + dounmount(mp, 0, p) != 0) + CLRSIG(p, CURSIG(p)); } - return (error); + return (0); } /* |