summaryrefslogtreecommitdiffstats
path: root/sys/contrib
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2007-10-04 17:51:59 +0000
committerpjd <pjd@FreeBSD.org>2007-10-04 17:51:59 +0000
commit1958f24dc22430324da5d777981664e93d86849c (patch)
treed73155134933e8d7ee73c02a6f9d9ce8ad9e385a /sys/contrib
parent0c91cfd26be696d7accaeac0635f838a69826282 (diff)
downloadFreeBSD-src-1958f24dc22430324da5d777981664e93d86849c.zip
FreeBSD-src-1958f24dc22430324da5d777981664e93d86849c.tar.gz
Fix lock leak leading to the 'System call <name> returning with 1 locks held'
panic. Reported by: kris Approved by: re (kensmith)
Diffstat (limited to 'sys/contrib')
-rw-r--r--sys/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c b/sys/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
index 9b7e23c..9a882a5 100644
--- a/sys/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
+++ b/sys/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
@@ -209,6 +209,8 @@ mzap_open(objset_t *os, uint64_t obj, dmu_buf_t *db)
winner = dmu_buf_set_user(db, zap, &zap->zap_m.zap_phys, zap_evict);
if (winner != NULL) {
+ rw_exit(&zap->zap_rwlock);
+ rw_destroy(&zap->zap_rwlock);
if (!zap->zap_ismicro)
mutex_destroy(&zap->zap_f.zap_num_entries_mtx);
kmem_free(zap, sizeof (zap_t));
OpenPOWER on IntegriCloud