From 5d3c4ae7b380caa4cd2c6660d8b0ecd481d12d1a Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Sat, 2 Sep 2006 16:51:44 +0000 Subject: [PATCH] Fix a case where a spinlock was not being released. Reported-by: Peter Avalos --- sys/kern/uipc_usrreq.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index 32f08a5a0a..58c2e2fe94 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -32,7 +32,7 @@ * * From: @(#)uipc_usrreq.c 8.3 (Berkeley) 1/4/94 * $FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.54.2.10 2003/03/04 17:28:09 nectar Exp $ - * $DragonFly: src/sys/kern/uipc_usrreq.c,v 1.27 2006/08/12 00:26:20 dillon Exp $ + * $DragonFly: src/sys/kern/uipc_usrreq.c,v 1.28 2006/09/02 16:51:44 dillon Exp $ */ #include @@ -1380,10 +1380,10 @@ unp_mark(struct file *fp, void *data) if (info->locked_fp != fp) spin_lock_wr(&fp->f_spin); - if (fp->f_flag & FMARK) - return; - ++info->defer; - fp->f_flag |= (FMARK|FDEFER); + if ((fp->f_flag & FMARK) == 0) { + ++info->defer; + fp->f_flag |= (FMARK|FDEFER); + } if (info->locked_fp != fp) spin_unlock_wr(&fp->f_spin); } -- 2.41.0