Add fetching of GUID in VDevTree
This commit is contained in:
parent
ee9aac43ac
commit
768fbf7f22
6
zpool.c
6
zpool.c
|
@ -378,6 +378,12 @@ const char *get_vdev_type(nvlist_ptr nv) {
|
|||
return value;
|
||||
}
|
||||
|
||||
uint64_t get_vdev_guid(nvlist_ptr nv) {
|
||||
uint64_t value = 0;
|
||||
nvlist_lookup_uint64(nv, ZPOOL_CONFIG_GUID, &value);
|
||||
return value;
|
||||
}
|
||||
|
||||
const vdev_stat_ptr get_vdev_stats(nvlist_ptr nv) {
|
||||
vdev_stat_ptr vs = NULL;
|
||||
uint_t count;
|
||||
|
|
3
zpool.go
3
zpool.go
|
@ -115,6 +115,7 @@ type VDevTree struct {
|
|||
Spares []VDevTree
|
||||
L2Cache []VDevTree
|
||||
Logs *VDevTree
|
||||
GUID uint64
|
||||
Parity uint
|
||||
Path string
|
||||
Name string
|
||||
|
@ -178,6 +179,8 @@ func poolGetConfig(name string, nv C.nvlist_ptr) (vdevs VDevTree, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
vdevs.GUID = uint64(C.get_vdev_guid(nv))
|
||||
|
||||
// Fetch vdev state
|
||||
if vs = C.get_vdev_stats(nv); vs == nil {
|
||||
err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_VDEV_STATS)
|
||||
|
|
1
zpool.h
1
zpool.h
|
@ -62,6 +62,7 @@ nvlist_t *nvlist_array_at(nvlist_t **a, uint_t i);
|
|||
int refresh_stats(zpool_list_t *pool);
|
||||
|
||||
const char *get_vdev_type(nvlist_ptr nv);
|
||||
uint64_t get_vdev_guid(nvlist_ptr nv);
|
||||
const vdev_stat_ptr get_vdev_stats(nvlist_ptr nv);
|
||||
pool_scan_stat_ptr get_vdev_scan_stats(nvlist_t *nv);
|
||||
vdev_children_ptr get_vdev_children(nvlist_t *nv);
|
||||
|
|
Loading…
Reference in New Issue