Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c =================================================================== --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c @@ -349,25 +349,21 @@ int vdev_queue_timestamp_compare(const void *x1, const void *x2) { - const zio_t *z1 = x1; - const zio_t *z2 = x2; + const zio_t *z1 = (const zio_t *)x1; + const zio_t *z2 = (const zio_t *)x2; + int cmp; - if (z1->io_timestamp < z2->io_timestamp) - return (-1); - if (z1->io_timestamp > z2->io_timestamp) - return (1); + cmp = AVL_CMP(z1->io_timpstamp, z2->io_timestamp); - if (z1->io_offset < z2->io_offset) - return (-1); - if (z1->io_offset > z2->io_offset) - return (1); + if (likely(cmp)) + return (cmp); - if (z1 < z2) - return (-1); - if (z1 > z2) - return (1); + cmp = AVL_CMP(z1->io_offset, z2->io_offset); - return (0); + if (likely(cmp)) + return (cmp); + + return (AVL_PCMP(z1, z2)); } void