summaryrefslogtreecommitdiffstats
path: root/sys/ufs/mfs/mfs_vfsops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs/mfs/mfs_vfsops.c')
-rw-r--r--sys/ufs/mfs/mfs_vfsops.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c
index 9188837..0355d57 100644
--- a/sys/ufs/mfs/mfs_vfsops.c
+++ b/sys/ufs/mfs/mfs_vfsops.c
@@ -410,7 +410,7 @@ mfs_start(mp, flags, p)
register struct vnode *vp = VFSTOUFS(mp)->um_devvp;
register struct mfsnode *mfsp = VTOMFS(vp);
register struct buf *bp;
- register int gotsig = 0;
+ register int gotsig = 0, sig;
/*
* We must prevent the system from trying to swap
@@ -449,8 +449,11 @@ mfs_start(mp, flags, p)
*/
if (gotsig) {
gotsig = 0;
- if (dounmount(mp, 0, p) != 0)
- CLRSIG(p, CURSIG(p)); /* try sleep again.. */
+ if (dounmount(mp, 0, p) != 0) {
+ sig = CURSIG(p);
+ if (sig)
+ SIGDELSET(p->p_siglist, sig);
+ }
}
else if (tsleep((caddr_t)vp, mfs_pri, "mfsidl", 0))
gotsig++; /* try to unmount in next pass */
OpenPOWER on IntegriCloud