diff options
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/mmp.h | 2 | ||||
-rw-r--r-- | include/sys/spa_impl.h | 2 | ||||
-rw-r--r-- | include/sys/vdev_impl.h | 1 |
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 |