summaryrefslogtreecommitdiffstats
path: root/sys/geom/multipath/g_multipath.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/geom/multipath/g_multipath.h')
-rw-r--r--sys/geom/multipath/g_multipath.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/sys/geom/multipath/g_multipath.h b/sys/geom/multipath/g_multipath.h
index 22d6157..33c44f1 100644
--- a/sys/geom/multipath/g_multipath.h
+++ b/sys/geom/multipath/g_multipath.h
@@ -43,10 +43,15 @@
#ifdef _KERNEL
struct g_multipath_softc {
- struct g_provider * pp;
- struct g_consumer * cp_active;
+ struct g_provider * sc_pp;
+ struct g_consumer * sc_active;
+ struct mtx sc_mtx;
char sc_name[16];
char sc_uuid[40];
+ int sc_opened;
+ int sc_stopping;
+ int sc_ndisks;
+ int sc_active_active; /* Active/Active mode */
};
#endif /* _KERNEL */
@@ -57,6 +62,7 @@ struct g_multipath_metadata {
uint32_t md_version; /* version */
uint32_t md_sectorsize; /* sectorsize of provider */
uint64_t md_size; /* absolute size of provider */
+ uint8_t md_active_active; /* Active/Active mode */
};
static __inline void
@@ -79,6 +85,8 @@ multipath_metadata_encode(const struct g_multipath_metadata *md, u_char *data)
le32enc(data, md->md_sectorsize);
data += sizeof(md->md_sectorsize);
le64enc(data, md->md_size);
+ data += sizeof(md->md_size);
+ *data = md->md_active_active;
}
static __inline void
@@ -95,5 +103,7 @@ multipath_metadata_decode(u_char *data, struct g_multipath_metadata *md)
md->md_sectorsize = le32dec(data);
data += sizeof(md->md_sectorsize);
md->md_size = le64dec(data);
+ data += sizeof(md->md_size);
+ md->md_active_active = *data;
}
#endif /* _G_MULTIPATH_H_ */
OpenPOWER on IntegriCloud