]> git.proxmox.com Git - mirror_zfs.git/blobdiff - include/sys/spa_impl.h
Illumos 4757, 4913
[mirror_zfs.git] / include / sys / spa_impl.h
index 1b12b4e3a8b26e9ca383d885bfa56caa6be59e0c..a8ade1d217044a9e99408bd5f531f776a7f592aa 100644 (file)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  */
 
@@ -38,6 +38,8 @@
 #include <sys/refcount.h>
 #include <sys/bplist.h>
 #include <sys/bpobj.h>
+#include <sys/zfeature.h>
+#include <zfeature_common.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -232,12 +234,18 @@ struct spa {
        uint64_t        spa_feat_for_write_obj; /* required to write to pool */
        uint64_t        spa_feat_for_read_obj;  /* required to read from pool */
        uint64_t        spa_feat_desc_obj;      /* Feature descriptions */
+       uint64_t        spa_feat_enabled_txg_obj; /* Feature enabled txg */
+       /* cache feature refcounts */
+       uint64_t        spa_feat_refcount_cache[SPA_FEATURES];
        taskqid_t       spa_deadman_tqid;       /* Task id */
        uint64_t        spa_deadman_calls;      /* number of deadman calls */
-       uint64_t        spa_sync_starttime;     /* starting time fo spa_sync */
+       hrtime_t        spa_sync_starttime;     /* starting time of spa_sync */
        uint64_t        spa_deadman_synctime;   /* deadman expiration timer */
+       uint64_t        spa_errata;             /* errata issues detected */
+       spa_stats_t     spa_stats;              /* assorted spa statistics */
+
        /*
-        * spa_refcnt & spa_config_lock must be the last elements
+        * spa_refcount & spa_config_lock must be the last elements
         * because refcount_t changes size based on compilation options.
         * In order for the MDB module to function correctly, the other
         * fields must remain in the same location.
@@ -250,6 +258,9 @@ extern char *spa_config_path;
 
 extern void spa_taskq_dispatch_ent(spa_t *spa, zio_type_t t, zio_taskq_type_t q,
     task_func_t *func, void *arg, uint_t flags, taskq_ent_t *ent);
+extern void spa_taskq_dispatch_sync(spa_t *, zio_type_t t, zio_taskq_type_t q,
+    task_func_t *func, void *arg, uint_t flags);
+
 
 #ifdef __cplusplus
 }