diff options
author | dt <dt@FreeBSD.org> | 1999-05-08 22:46:46 +0000 |
---|---|---|
committer | dt <dt@FreeBSD.org> | 1999-05-08 22:46:46 +0000 |
commit | 4a4467575d5f4db43a083085e049267cfaf6ebeb (patch) | |
tree | 4fc905036bccf4953db647cc2eab468cc4f0a4d0 /sys/kern/kern_lockf.c | |
parent | e4989c23fe81c5060ef3a4e0e3bb1bb4430d1a76 (diff) | |
download | FreeBSD-src-4a4467575d5f4db43a083085e049267cfaf6ebeb.zip FreeBSD-src-4a4467575d5f4db43a083085e049267cfaf6ebeb.tar.gz |
Fix a freelist trashing under following confitions:
- first program lock a region in a file,
- second program wait on the lock,
- first program extend the region,
- second program interrupted by a signal.
Diffstat (limited to 'sys/kern/kern_lockf.c')
-rw-r--r-- | sys/kern/kern_lockf.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_lockf.c b/sys/kern/kern_lockf.c index 6e26959..4655f6a 100644 --- a/sys/kern/kern_lockf.c +++ b/sys/kern/kern_lockf.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)ufs_lockf.c 8.3 (Berkeley) 1/6/94 - * $Id: kern_lockf.c,v 1.20 1998/11/10 09:16:29 peter Exp $ + * $Id: kern_lockf.c,v 1.21 1999/01/27 21:49:56 dillon Exp $ */ #include "opt_debug_lockf.h" @@ -365,6 +365,7 @@ lf_setlock(lock) lf_block); TAILQ_INSERT_TAIL(&lock->lf_blkhd, ltmp, lf_block); + ltmp->lf_next = lock; } } /* |