aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2019-10-16 07:54:32 +0000
committerAndriy Gapon <avg@FreeBSD.org>2019-10-16 07:54:32 +0000
commit74032c5f3b4b5ae87cbc8254a095b485391c3b79 (patch)
treefd187dd6a2319b567288a20071673f8b85c88ef6
parent6c957338141ddda1aa3ddedea1d4207290f62fce (diff)
downloadsrc-74032c5f3b4b5ae87cbc8254a095b485391c3b79.tar.gz
src-74032c5f3b4b5ae87cbc8254a095b485391c3b79.zip
10842 Mutex leak in dsl_dataset_hold_obj()
illumos/illumos-gate@ad027c0ff9612bff8f47b43d8561da627f80cd29 https://github.com/illumos/illumos-gate/commit/ad027c0ff9612bff8f47b43d8561da627f80cd29 https://www.illumos.org/issues/10842 ZoL d10b2f1d35b Mutex leak in dsl_dataset_hold_obj() Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Author: Jorgen Lundman <lundman@lundman.net>
Notes
Notes: svn path=/vendor-sys/illumos/dist/; revision=353628
-rw-r--r--uts/common/fs/zfs/dsl_dataset.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/uts/common/fs/zfs/dsl_dataset.c b/uts/common/fs/zfs/dsl_dataset.c
index 27873c0d4529..0b08adb91594 100644
--- a/uts/common/fs/zfs/dsl_dataset.c
+++ b/uts/common/fs/zfs/dsl_dataset.c
@@ -562,10 +562,14 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uint64_t dsobj, void *tag,
if (ds->ds_prev)
dsl_dataset_rele(ds->ds_prev, ds);
dsl_dir_rele(ds->ds_dir, ds);
+ list_destroy(&ds->ds_prop_cbs);
+ list_destroy(&ds->ds_sendstreams);
mutex_destroy(&ds->ds_lock);
mutex_destroy(&ds->ds_opening_lock);
mutex_destroy(&ds->ds_sendstream_lock);
+ mutex_destroy(&ds->ds_remap_deadlist_lock);
zfs_refcount_destroy(&ds->ds_longholds);
+ rrw_destroy(&ds->ds_bp_rwlock);
kmem_free(ds, sizeof (dsl_dataset_t));
if (err != 0) {
dmu_buf_rele(dbuf, tag);