mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
zio: rename ZIO_TYPE_IOCTL to ZIO_TYPE_FLUSH
The only possible ioctl is a flush, and any other kind of meta-operation introduced in the future is likely to have different semantics (much like trim did). So, lets just call it what it is. Sponsored-by: Klara, Inc. Sponsored-by: Wasabi Technology, Inc. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Rob Norris <rob.norris@klarasystems.com> Closes #16064
This commit is contained in:
committed by
Brian Behlendorf
parent
b613709c46
commit
d7605ae77b
+1
-1
@@ -180,7 +180,7 @@ static zio_taskq_info_t zio_taskqs[ZIO_TYPES][ZIO_TASKQ_TYPES] = {
|
||||
{ ZTI_SYNC, ZTI_N(5), ZTI_SCALE, ZTI_N(5) }, /* WRITE */
|
||||
{ ZTI_SCALE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, /* FREE */
|
||||
{ ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, /* CLAIM */
|
||||
{ ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, /* IOCTL */
|
||||
{ ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, /* FLUSH */
|
||||
{ ZTI_N(4), ZTI_NULL, ZTI_ONE, ZTI_NULL }, /* TRIM */
|
||||
};
|
||||
|
||||
|
||||
+6
-6
@@ -4924,11 +4924,11 @@ vdev_stat_update(zio_t *zio, uint64_t psize)
|
||||
|
||||
/*
|
||||
* TRIM ops and bytes are reported to user space as
|
||||
* ZIO_TYPE_IOCTL. This is done to preserve the
|
||||
* ZIO_TYPE_FLUSH. This is done to preserve the
|
||||
* vdev_stat_t structure layout for user space.
|
||||
*/
|
||||
if (type == ZIO_TYPE_TRIM)
|
||||
vs_type = ZIO_TYPE_IOCTL;
|
||||
vs_type = ZIO_TYPE_FLUSH;
|
||||
|
||||
/*
|
||||
* Solely for the purposes of 'zpool iostat -lqrw'
|
||||
@@ -6239,12 +6239,12 @@ vdev_prop_get(vdev_t *vd, nvlist_t *innvl, nvlist_t *outnvl)
|
||||
case VDEV_PROP_OPS_TRIM:
|
||||
/*
|
||||
* TRIM ops and bytes are reported to user
|
||||
* space as ZIO_TYPE_IOCTL. This is done to
|
||||
* space as ZIO_TYPE_FLUSH. This is done to
|
||||
* preserve the vdev_stat_t structure layout
|
||||
* for user space.
|
||||
*/
|
||||
vdev_prop_add_list(outnvl, propname, NULL,
|
||||
vd->vdev_stat.vs_ops[ZIO_TYPE_IOCTL],
|
||||
vd->vdev_stat.vs_ops[ZIO_TYPE_FLUSH],
|
||||
ZPROP_SRC_NONE);
|
||||
continue;
|
||||
case VDEV_PROP_BYTES_NULL:
|
||||
@@ -6275,12 +6275,12 @@ vdev_prop_get(vdev_t *vd, nvlist_t *innvl, nvlist_t *outnvl)
|
||||
case VDEV_PROP_BYTES_TRIM:
|
||||
/*
|
||||
* TRIM ops and bytes are reported to user
|
||||
* space as ZIO_TYPE_IOCTL. This is done to
|
||||
* space as ZIO_TYPE_FLUSH. This is done to
|
||||
* preserve the vdev_stat_t structure layout
|
||||
* for user space.
|
||||
*/
|
||||
vdev_prop_add_list(outnvl, propname, NULL,
|
||||
vd->vdev_stat.vs_bytes[ZIO_TYPE_IOCTL],
|
||||
vd->vdev_stat.vs_bytes[ZIO_TYPE_FLUSH],
|
||||
ZPROP_SRC_NONE);
|
||||
continue;
|
||||
case VDEV_PROP_REMOVING:
|
||||
|
||||
@@ -2548,11 +2548,11 @@ vdev_draid_read_config_spare(vdev_t *vd)
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle any ioctl requested of the distributed spare. Only flushes
|
||||
* are supported in which case all children must be flushed.
|
||||
* Handle any flush requested of the distributed spare. All children must be
|
||||
* flushed.
|
||||
*/
|
||||
static int
|
||||
vdev_draid_spare_ioctl(zio_t *zio)
|
||||
vdev_draid_spare_flush(zio_t *zio)
|
||||
{
|
||||
vdev_t *vd = zio->io_vd;
|
||||
int error = 0;
|
||||
@@ -2592,8 +2592,8 @@ vdev_draid_spare_io_start(zio_t *zio)
|
||||
}
|
||||
|
||||
switch (zio->io_type) {
|
||||
case ZIO_TYPE_IOCTL:
|
||||
zio->io_error = vdev_draid_spare_ioctl(zio);
|
||||
case ZIO_TYPE_FLUSH:
|
||||
zio->io_error = vdev_draid_spare_flush(zio);
|
||||
break;
|
||||
|
||||
case ZIO_TYPE_WRITE:
|
||||
|
||||
+6
-6
@@ -63,7 +63,7 @@ const char *const zio_type_name[ZIO_TYPES] = {
|
||||
* Note: Linux kernel thread name length is limited
|
||||
* so these names will differ from upstream open zfs.
|
||||
*/
|
||||
"z_null", "z_rd", "z_wr", "z_fr", "z_cl", "z_ioctl", "z_trim"
|
||||
"z_null", "z_rd", "z_wr", "z_fr", "z_cl", "z_flush", "z_trim"
|
||||
};
|
||||
|
||||
int zio_dva_throttle_enabled = B_TRUE;
|
||||
@@ -1632,8 +1632,8 @@ zio_flush(zio_t *pio, vdev_t *vd)
|
||||
|
||||
if (vd->vdev_children == 0) {
|
||||
zio_nowait(zio_create(pio, vd->vdev_spa, 0, NULL, NULL, 0, 0,
|
||||
NULL, NULL, ZIO_TYPE_IOCTL, ZIO_PRIORITY_NOW, flags, vd, 0,
|
||||
NULL, ZIO_STAGE_OPEN, ZIO_IOCTL_PIPELINE));
|
||||
NULL, NULL, ZIO_TYPE_FLUSH, ZIO_PRIORITY_NOW, flags, vd, 0,
|
||||
NULL, ZIO_STAGE_OPEN, ZIO_FLUSH_PIPELINE));
|
||||
} else {
|
||||
for (uint64_t c = 0; c < vd->vdev_children; c++)
|
||||
zio_flush(pio, vd->vdev_child[c]);
|
||||
@@ -4086,7 +4086,7 @@ zio_vdev_io_done(zio_t *zio)
|
||||
|
||||
ASSERT(zio->io_type == ZIO_TYPE_READ ||
|
||||
zio->io_type == ZIO_TYPE_WRITE ||
|
||||
zio->io_type == ZIO_TYPE_IOCTL ||
|
||||
zio->io_type == ZIO_TYPE_FLUSH ||
|
||||
zio->io_type == ZIO_TYPE_TRIM);
|
||||
|
||||
if (zio->io_delay)
|
||||
@@ -4094,7 +4094,7 @@ zio_vdev_io_done(zio_t *zio)
|
||||
|
||||
if (vd != NULL && vd->vdev_ops->vdev_op_leaf &&
|
||||
vd->vdev_ops != &vdev_draid_spare_ops) {
|
||||
if (zio->io_type != ZIO_TYPE_IOCTL)
|
||||
if (zio->io_type != ZIO_TYPE_FLUSH)
|
||||
vdev_queue_io_done(zio);
|
||||
|
||||
if (zio_injection_enabled && zio->io_error == 0)
|
||||
@@ -4239,7 +4239,7 @@ zio_vdev_io_assess(zio_t *zio)
|
||||
* boolean flag so that we don't bother with it in the future.
|
||||
*/
|
||||
if ((zio->io_error == ENOTSUP || zio->io_error == ENOTTY) &&
|
||||
zio->io_type == ZIO_TYPE_IOCTL && vd != NULL)
|
||||
zio->io_type == ZIO_TYPE_FLUSH && vd != NULL)
|
||||
vd->vdev_nowritecache = B_TRUE;
|
||||
|
||||
if (zio->io_error)
|
||||
|
||||
@@ -367,7 +367,7 @@ zio_handle_device_injection_impl(vdev_t *vd, zio_t *zio, int err1, int err2)
|
||||
* We skip over faults in the labels unless it's during device open
|
||||
* (i.e. zio == NULL) or a device flush (offset is meaningless)
|
||||
*/
|
||||
if (zio != NULL && zio->io_type != ZIO_TYPE_IOCTL) {
|
||||
if (zio != NULL && zio->io_type != ZIO_TYPE_FLUSH) {
|
||||
uint64_t offset = zio->io_offset;
|
||||
|
||||
if (offset < VDEV_LABEL_START_SIZE ||
|
||||
|
||||
Reference in New Issue
Block a user