Author: mav
Date: Thu Mar  2 07:50:06 2017
New Revision: 314548
URL: https://svnweb.freebsd.org/changeset/base/314548

Log:
  Completely skip cache flushing for not supporting log devices.
  
  MFC after:    2 weeks
  Sponsored by: iXsystems, Inc.

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c   Thu Mar  2 
07:25:50 2017        (r314547)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c   Thu Mar  2 
07:50:06 2017        (r314548)
@@ -838,7 +838,7 @@ zil_flush_vdevs(zilog_t *zilog)
        avl_tree_t *t = &zilog->zl_vdev_tree;
        void *cookie = NULL;
        zil_vdev_node_t *zv;
-       zio_t *zio;
+       zio_t *zio = NULL;
 
        ASSERT(zilog->zl_writer);
 
@@ -851,12 +851,13 @@ zil_flush_vdevs(zilog_t *zilog)
 
        spa_config_enter(spa, SCL_STATE, FTAG, RW_READER);
 
-       zio = zio_root(spa, NULL, NULL, ZIO_FLAG_CANFAIL);
-
        while ((zv = avl_destroy_nodes(t, &cookie)) != NULL) {
                vdev_t *vd = vdev_lookup_top(spa, zv->zv_vdev);
-               if (vd != NULL)
+               if (vd != NULL && !vd->vdev_nowritecache) {
+                       if (zio == NULL)
+                               zio = zio_root(spa, NULL, NULL, 
ZIO_FLAG_CANFAIL);
                        zio_flush(zio, vd);
+               }
                kmem_free(zv, sizeof (*zv));
        }
 
@@ -864,7 +865,8 @@ zil_flush_vdevs(zilog_t *zilog)
         * Wait for all the flushes to complete.  Not all devices actually
         * support the DKIOCFLUSHWRITECACHE ioctl, so it's OK if it fails.
         */
-       (void) zio_wait(zio);
+       if (zio)
+               (void) zio_wait(zio);
 
        spa_config_exit(spa, SCL_STATE, FTAG);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to