usr/src/uts/common/fs/zfs/zio.c
changeset 5369 27c1235ef9a4
parent 5329 33cb98223b2d
child 5403 0bfd0977c989
--- a/usr/src/uts/common/fs/zfs/zio.c	Mon Oct 29 17:19:25 2007 -0700
+++ b/usr/src/uts/common/fs/zfs/zio.c	Mon Oct 29 17:24:59 2007 -0700
@@ -1137,13 +1137,14 @@
 		}
 
 		/*
-		 * If we are an allocating I/O then we retry on another
-		 * vdev unless the pool is out of space.  We handle this
-		 * condition based on the spa's failmode property.
+		 * If we are an allocating I/O or have been told to retry
+		 * then attempt to reissue the I/O on another vdev unless
+		 * the pool is out of space.  We handle this condition
+		 * based on the spa's failmode property.
 		 */
 		if (zio_write_retry && zio->io_error != ENOSPC &&
-		    IO_IS_ALLOCATING(zio) &&
-		    zio->io_flags & ZIO_FLAG_WRITE_RETRY) {
+		    (IO_IS_ALLOCATING(zio) ||
+		    zio->io_flags & ZIO_FLAG_WRITE_RETRY)) {
 			zio_vdev_retry_io(zio);
 			return;
 		}