From 6f0cf71e0d191abb850a45f6d216cb5af158a6dd Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Thu, 16 Jun 2011 20:59:56 +0200 Subject: [PATCH] Removed erroneous zfs_inode_destroy() calls from zfs_rmnode(). iput_final() already calls zpl_inode_destroy() -> zfs_inode_destroy() for us after zfs_zinactive(), thus making sure that the inode is properly cleaned up. The zfs_inode_destroy() calls in zfs_rmnode() would lead to a double-free. Fixes #282 --- module/zfs/zfs_dir.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/module/zfs/zfs_dir.c b/module/zfs/zfs_dir.c index 199e58cf..58a18bcf 100644 --- a/module/zfs/zfs_dir.c +++ b/module/zfs/zfs_dir.c @@ -614,7 +614,6 @@ zfs_rmnode(znode_t *zp) * Leave it in the unlinked set. */ zfs_znode_dmu_fini(zp); - zfs_inode_destroy(ZTOI(zp)); return; } @@ -629,7 +628,6 @@ zfs_rmnode(znode_t *zp) * Not enough space. Leave the file in the unlinked set. */ zfs_znode_dmu_fini(zp); - zfs_inode_destroy(ZTOI(zp)); return; } @@ -669,7 +667,6 @@ zfs_rmnode(znode_t *zp) */ dmu_tx_abort(tx); zfs_znode_dmu_fini(zp); - zfs_inode_destroy(ZTOI(zp)); goto out; } -- 2.39.2