summaryrefslogtreecommitdiff
path: root/sys/ufs
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2022-02-14 11:26:06 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2022-02-14 11:26:06 +0000
commitb29ff111cb6b76be86d1a5d30570ccff73d1c031 (patch)
treeea508a9ea62a28c07fce855259385144d48faada /sys/ufs
parent55737b855cd9bf4179e9ed6e633cce2069bdb94b (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.c5
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,