svn commit: r303869 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Conrad Meyer
cem at freebsd.org
Tue Aug 9 14:55:02 UTC 2016
This was detected by Coverity as CID 1361483, for what it's worth.
Best,
Conrad
On Mon, Aug 8, 2016 at 11:11 PM, Andriy Gapon <avg at freebsd.org> wrote:
> Author: avg
> Date: Tue Aug 9 06:11:24 2016
> New Revision: 303869
> URL: https://svnweb.freebsd.org/changeset/base/303869
>
> Log:
> 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
>
> Modified:
> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
>
> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
> ==============================================================================
> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Aug 9 04:59:55 2016 (r303868)
> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Aug 9 06:11:24 2016 (r303869)
> @@ -3956,7 +3956,7 @@ unlockout: /* all 4 vnodes are locked,
> 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)
>
More information about the svn-src-head
mailing list