summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2016-03-20 20:12:14 +0000
committermav <mav@FreeBSD.org>2016-03-20 20:12:14 +0000
commit495e63a6681b828671980c26d135f5ed2af0d6c2 (patch)
tree8794aa6f347757b9c47161ed17bf65e0dbb5fbc1 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
parente727ce4355229a44282d4a47836d884f81341982 (diff)
downloadFreeBSD-src-495e63a6681b828671980c26d135f5ed2af0d6c2.zip
FreeBSD-src-495e63a6681b828671980c26d135f5ed2af0d6c2.tar.gz
MFC r274304 (by delphij): MFV r274272 and diff reduction with upstream.
Illumos issue: 5244 zio pipeline callers should explicitly invoke next stage
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
index ad21d6e..01ef756 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
@@ -20,7 +20,7 @@
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2014 by Delphix. All rights reserved.
*/
#include <sys/zfs_context.h>
@@ -156,7 +156,7 @@ vdev_file_close(vdev_t *vd)
vd->vdev_tsd = NULL;
}
-static int
+static void
vdev_file_io_start(zio_t *zio)
{
vdev_t *vd = zio->io_vd;
@@ -167,7 +167,7 @@ vdev_file_io_start(zio_t *zio)
if (!vdev_readable(vd)) {
zio->io_error = SET_ERROR(ENXIO);
zio_interrupt(zio);
- return (ZIO_PIPELINE_STOP);
+ return;
}
vf = vd->vdev_tsd;
@@ -183,8 +183,8 @@ vdev_file_io_start(zio_t *zio)
zio->io_error = SET_ERROR(ENOTSUP);
}
- zio_interrupt(zio);
- return (ZIO_PIPELINE_STOP);
+ zio_execute(zio);
+ return;
}
ASSERT(zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE);
@@ -198,7 +198,10 @@ vdev_file_io_start(zio_t *zio)
zio_interrupt(zio);
- return (ZIO_PIPELINE_STOP);
+#ifdef illumos
+ VERIFY3U(taskq_dispatch(system_taskq, vdev_file_io_strategy, bp,
+ TQ_SLEEP), !=, 0);
+#endif
}
/* ARGSUSED */
OpenPOWER on IntegriCloud