aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2014-11-09 07:37:00 +0000
committerXin LI <delphij@FreeBSD.org>2014-11-09 07:37:00 +0000
commit42350b6bdea0a5e41246b5a2685965ed65a9fc98 (patch)
treec2d93ba0784d510ba474f4f3a074858f2f3156d3 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
parent68ce9bc32d9d354d235be081d4a9ee3055d6f554 (diff)
parent6c426f3bd473343f9e556a900758e03b8269d0f9 (diff)
MFV r274272 and diff reduction with upstream.
Illumos issue: 5244 zio pipeline callers should explicitly invoke next stage Tested with: ztest plus ZFS over GELI configuration MFC after: 1 month
Notes
Notes: svn path=/head/; revision=274304
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
index 1caff2c554c6..eefa1dc9f01d 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
@@ -715,7 +715,7 @@ vdev_disk_ioctl_done(void *zio_arg, int error)
zio_interrupt(zio);
}
-static int
+static void
vdev_disk_io_start(zio_t *zio)
{
vdev_t *vd = zio->io_vd;
@@ -732,7 +732,7 @@ vdev_disk_io_start(zio_t *zio)
if (dvd == NULL || (dvd->vd_ldi_offline && dvd->vd_lh == NULL)) {
zio->io_error = SET_ERROR(ENXIO);
zio_interrupt(zio);
- return (ZIO_PIPELINE_STOP);
+ return;
}
if (zio->io_type == ZIO_TYPE_IOCTL) {
@@ -740,7 +740,7 @@ vdev_disk_io_start(zio_t *zio)
if (!vdev_readable(vd)) {
zio->io_error = SET_ERROR(ENXIO);
zio_interrupt(zio);
- return (ZIO_PIPELINE_STOP);
+ return;
}
switch (zio->io_cmd) {
@@ -771,7 +771,7 @@ vdev_disk_io_start(zio_t *zio)
* and will call vdev_disk_ioctl_done()
* upon completion.
*/
- return (ZIO_PIPELINE_STOP);
+ return;
}
if (error == ENOTSUP || error == ENOTTY) {
@@ -792,8 +792,8 @@ vdev_disk_io_start(zio_t *zio)
zio->io_error = SET_ERROR(ENOTSUP);
}
- zio_interrupt(zio);
- return (ZIO_PIPELINE_STOP);
+ zio_execute(zio);
+ return;
}
vb = kmem_alloc(sizeof (vdev_buf_t), KM_SLEEP);
@@ -814,8 +814,6 @@ vdev_disk_io_start(zio_t *zio)
/* ldi_strategy() will return non-zero only on programming errors */
VERIFY(ldi_strategy(dvd->vd_lh, bp) == 0);
-
- return (ZIO_PIPELINE_STOP);
}
static void