diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2022-02-14 11:26:06 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2022-02-14 11:26:06 +0000 |
commit | b29ff111cb6b76be86d1a5d30570ccff73d1c031 (patch) | |
tree | ea508a9ea62a28c07fce855259385144d48faada /sys/ufs | |
parent | 55737b855cd9bf4179e9ed6e633cce2069bdb94b (diff) |
Introduce a signal context that is used to pass signal related information
from cursig() to postsig() or the caller itself. This will simplify locking.
Also alter sigactsfree() a bit and move it into process_zap() so ps_sigacts
is always a valid pointer.
OK semarie@
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/mfs/mfs_vfsops.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c index 5d1bd458565..ff6d46997f6 100644 --- a/sys/ufs/mfs/mfs_vfsops.c +++ b/sys/ufs/mfs/mfs_vfsops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mfs_vfsops.c,v 1.61 2021/10/05 08:38:19 claudio Exp $ */ +/* $OpenBSD: mfs_vfsops.c,v 1.62 2022/02/14 11:26:05 claudio Exp $ */ /* $NetBSD: mfs_vfsops.c,v 1.10 1996/02/09 22:31:28 christos Exp $ */ /* @@ -167,6 +167,7 @@ mfs_start(struct mount *mp, int flags, struct proc *p) struct mfsnode *mfsp = VTOMFS(vp); struct buf *bp; int sleepreturn = 0, sig; + struct sigctx ctx; while (1) { while (1) { @@ -188,7 +189,7 @@ mfs_start(struct mount *mp, int flags, struct proc *p) * EINTR/ERESTART. */ if (sleepreturn != 0) { - sig = cursig(p); + sig = cursig(p, &ctx); if (vfs_busy(mp, VB_WRITE|VB_NOWAIT) || dounmount(mp, (sig == SIGKILL) ? MNT_FORCE : 0, p)) atomic_clearbits_int(&p->p_siglist, |