Chunwei Chen 07d63f0cb9 Fix fail path in zfs_znode_alloc
When sa_bulk_lookup() fails, unlock_new_inode() will spit out a WARNING. It
will also recursive deadlock on ZFS_OBJ_HOLD_ENTER in zfs_zinactive().

Since we never call insert_inode_locked in fail path, I_NEW is never set, the
inode is never hashed. So unlock_new_inode() can be safely remove it.

We set z_sa_hdl to NULL in fail path so that iput path will stop at
zfs_inactive() without entering zfs_zinactive(). This way we can avoid the
deadlock and prevent double sa_handle_destroy().

Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #3899
2015-10-13 15:57:17 -07:00
..
2015-10-13 09:23:35 -07:00
2015-07-06 09:31:30 -07:00
2015-09-04 15:30:24 -04:00
2015-08-19 16:04:33 -07:00
2015-09-02 09:30:18 -07:00
2015-08-30 10:10:16 -07:00
2015-09-01 15:22:07 -07:00
2015-05-04 09:41:09 -07:00
2015-09-04 16:08:14 -07:00
2015-09-04 16:08:14 -07:00
2015-10-13 15:57:17 -07:00
2015-09-30 10:43:19 -07:00