summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>1999-12-16 22:02:09 +0000
committermckusick <mckusick@FreeBSD.org>1999-12-16 22:02:09 +0000
commitf9019037baa7dfcb11ab26392ac6ed9b33bf7a83 (patch)
tree74c60ba9199653cc0b32b78d78736b33df9fa20a /sys/ufs
parentafbc7e5a64acd18b1e9c350460473810bcbf1bc4 (diff)
downloadFreeBSD-src-f9019037baa7dfcb11ab26392ac6ed9b33bf7a83.zip
FreeBSD-src-f9019037baa7dfcb11ab26392ac6ed9b33bf7a83.tar.gz
The function request_cleanup() had a tsleep() with PCATCH. It is
quite dangerous, since the process may hold locks at the point, and if it is stopped in that tsleep the machine may hang. Because the sleep is so short, the PCATCH is not required here, so it has been removed. For the future, the FreeBSD team needs to decide whether it is still reasonable to stop a process in tsleep, as that may affect any other code that uses PCATCH while holding kernel locks. Submitted by: Dmitrij Tejblum <tejblum@arc.hq.cti.ru> Reviewed by: Kirk McKusick <mckusick@mckusick.com>
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_softdep.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index a0252d2..20cb2dc 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -4252,7 +4252,7 @@ request_cleanup(resource, islocked)
tickdelay > 2 ? tickdelay : 2);
}
FREE_LOCK_INTERLOCKED(&lk);
- (void) tsleep((caddr_t)&proc_waiting, PPAUSE | PCATCH, "softupdate", 0);
+ (void) tsleep((caddr_t)&proc_waiting, PPAUSE, "softupdate", 0);
ACQUIRE_LOCK_INTERLOCKED(&lk);
if (proc_waiting) {
untimeout(pause_timer, NULL, handle);
OpenPOWER on IntegriCloud