diff options
author | Alfred Perlstein <alfred@FreeBSD.org> | 2002-02-01 19:19:54 +0000 |
---|---|---|
committer | Alfred Perlstein <alfred@FreeBSD.org> | 2002-02-01 19:19:54 +0000 |
commit | 2b39743941004635e56bb11606fe8cdeec70afce (patch) | |
tree | 635009af09bc818e07f437d6a56351ec5feeefdc /sys/kern/kern_descrip.c | |
parent | fcce64f0cf767fc25c2e8e6a36e95053e797d594 (diff) | |
download | src-2b39743941004635e56bb11606fe8cdeec70afce.tar.gz src-2b39743941004635e56bb11606fe8cdeec70afce.zip |
Avoid lock order reversal filedesc/Giant when calling FREE() in fdalloc
by unlocking the filedesc before calling FREE().
Submitted by: bde
Notes
Notes:
svn path=/head/; revision=90088
Diffstat (limited to 'sys/kern/kern_descrip.c')
-rw-r--r-- | sys/kern/kern_descrip.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 531b67f5dad8..7628d5aeef9a 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -956,9 +956,11 @@ fdalloc(td, want, result) fdp->fd_nfiles = nfiles; fdexpand++; if (oldofile != NULL) { + FILEDESC_UNLOCK(fdp); mtx_lock(&Giant); FREE(oldofile, M_FILEDESC); mtx_unlock(&Giant); + FILEDESC_LOCK(fdp); } } return (0); |