fix a zfs cross-device rename crash introduced in r303763

The problem was that 'zfsvfs' variable was not initialized if the error
was detected, but in the exit path the variable was dereferenced before
the error code was checked.

Reported by:	np
MFC after:	3 days
X-MFC with:	r303763
This commit is contained in:
Andriy Gapon 2016-08-09 06:11:24 +00:00
parent b5070c1829
commit 96762fe314

View File

@ -3956,7 +3956,7 @@ unlockout: /* all 4 vnodes are locked, ZFS_ENTER called */
VOP_UNLOCK(sdvp, 0);
out: /* original two vnodes are locked */
if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS && error == 0)
if (error == 0 && zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
zil_commit(zilog, 0);
if (*tvpp != NULL)