aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/sys/mmp.h2
-rw-r--r--include/sys/spa_impl.h2
-rw-r--r--include/sys/vdev_impl.h1
3 files changed, 5 insertions, 0 deletions
diff --git a/include/sys/mmp.h b/include/sys/mmp.h
index c99c124e6..edb0d4347 100644
--- a/include/sys/mmp.h
+++ b/include/sys/mmp.h
@@ -44,6 +44,8 @@ typedef struct mmp_thread {
zio_t *mmp_zio_root; /* root of mmp write zios */
uint64_t mmp_kstat_id; /* unique id for next MMP write kstat */
int mmp_skip_error; /* reason for last skipped write */
+ vdev_t *mmp_last_leaf; /* last mmp write sent here */
+ uint64_t mmp_leaf_last_gen; /* last mmp write sent here */
} mmp_thread_t;
diff --git a/include/sys/spa_impl.h b/include/sys/spa_impl.h
index 404aaa9ee..c3aaad611 100644
--- a/include/sys/spa_impl.h
+++ b/include/sys/spa_impl.h
@@ -391,6 +391,8 @@ struct spa {
taskq_t *spa_prefetch_taskq; /* Taskq for prefetch threads */
uint64_t spa_multihost; /* multihost aware (mmp) */
mmp_thread_t spa_mmp; /* multihost mmp thread */
+ list_t spa_leaf_list; /* list of leaf vdevs */
+ uint64_t spa_leaf_list_gen; /* track leaf_list changes */
/*
* spa_refcount & spa_config_lock must be the last elements
diff --git a/include/sys/vdev_impl.h b/include/sys/vdev_impl.h
index 8f8a8ccf6..c115a5e10 100644
--- a/include/sys/vdev_impl.h
+++ b/include/sys/vdev_impl.h
@@ -364,6 +364,7 @@ struct vdev {
hrtime_t vdev_mmp_pending; /* 0 if write finished */
uint64_t vdev_mmp_kstat_id; /* to find kstat entry */
uint64_t vdev_expansion_time; /* vdev's last expansion time */
+ list_node_t vdev_leaf_node; /* leaf vdev list */
/*
* For DTrace to work in userland (libzpool) context, these fields must