Index: sys/boot/zfs/zfsimpl.c =================================================================== --- sys/boot/zfs/zfsimpl.c (revision 224560) +++ sys/boot/zfs/zfsimpl.c (working copy) @@ -949,10 +949,10 @@ vdev_probe(vdev_phys_read_t *read, void *read_priv if (up->ub_txg < spa->spa_txg) continue; if (up->ub_txg > spa->spa_uberblock.ub_txg) { - spa->spa_uberblock = *up; + memcpy(&spa->spa_uberblock, up, sizeof(*up)); } else if (up->ub_txg == spa->spa_uberblock.ub_txg) { if (up->ub_timestamp > spa->spa_uberblock.ub_timestamp) - spa->spa_uberblock = *up; + memcpy(&spa->spa_uberblock, up, sizeof(*up)); } } zfs_free(upbuf, VDEV_UBERBLOCK_SIZE(vdev)); @@ -1703,6 +1703,6 @@ zfs_lookup(spa_t *spa, const char *upath, dnode_ph } } - *dnode = dn; + memcpy(dnode, &dn, sizeof(dn)); return (0); }