--- //depot/user/pjd/zfstrim/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c 2012-06-20 19:24:33.000000000 0000 +++ /usr/home/pjd/p4/zfstrim/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c 2012-06-20 19:24:33.000000000 0000 @@ -583,6 +583,16 @@ vd->vdev_delayed_close = B_TRUE; } } + if (zio->io_error == 0) { + switch (bp->bio_cmd) { + case BIO_FLUSH: + atomic_add_long(&vdev_geom_bio_flush_count, 1); + break; + case BIO_DELETE: + atomic_add_long(&vdev_geom_bio_delete_count, 1); + break; + } + } g_destroy_bio(bp); zio_interrupt(zio); } @@ -646,7 +656,6 @@ case ZIO_TYPE_IOCTL: switch (zio->io_cmd) { case DKIOCFLUSHWRITECACHE: - atomic_add_long(&vdev_geom_bio_flush_count, 1); bp->bio_cmd = BIO_FLUSH; bp->bio_flags |= BIO_ORDERED; bp->bio_data = NULL; @@ -654,7 +663,6 @@ bp->bio_length = 0; break; case DKIOCTRIM: - atomic_add_long(&vdev_geom_bio_delete_count, 1); bp->bio_cmd = BIO_DELETE; bp->bio_data = NULL; bp->bio_offset = zio->io_offset;