Fix bug where VDevTree.Stat wasn't being populated because the wrong struct was being written to.
This commit is contained in:
parent
b49a2715c2
commit
6b7e0db4e7
7
zpool.go
7
zpool.go
|
@ -145,7 +145,6 @@ func poolGetConfig(name string, nv *C.nvlist_t) (vdevs VDevTree, err error) {
|
||||||
var vs *C.vdev_stat_t
|
var vs *C.vdev_stat_t
|
||||||
var ps *C.pool_scan_stat_t
|
var ps *C.pool_scan_stat_t
|
||||||
var child **C.nvlist_t
|
var child **C.nvlist_t
|
||||||
var vdev VDevTree
|
|
||||||
if 0 != C.nvlist_lookup_string(nv, C.CString(C.ZPOOL_CONFIG_TYPE), &dtype) {
|
if 0 != C.nvlist_lookup_string(nv, C.CString(C.ZPOOL_CONFIG_TYPE), &dtype) {
|
||||||
err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_TYPE)
|
err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_TYPE)
|
||||||
return
|
return
|
||||||
|
@ -171,8 +170,8 @@ func poolGetConfig(name string, nv *C.nvlist_t) (vdevs VDevTree, err error) {
|
||||||
vdevs.Stat.RSize = uint64(vs.vs_rsize)
|
vdevs.Stat.RSize = uint64(vs.vs_rsize)
|
||||||
vdevs.Stat.ESize = uint64(vs.vs_esize)
|
vdevs.Stat.ESize = uint64(vs.vs_esize)
|
||||||
for z := 0; z < ZIOTypes; z++ {
|
for z := 0; z < ZIOTypes; z++ {
|
||||||
vdev.Stat.Ops[z] = uint64(vs.vs_ops[z])
|
vdevs.Stat.Ops[z] = uint64(vs.vs_ops[z])
|
||||||
vdev.Stat.Bytes[z] = uint64(vs.vs_bytes[z])
|
vdevs.Stat.Bytes[z] = uint64(vs.vs_bytes[z])
|
||||||
}
|
}
|
||||||
vdevs.Stat.ReadErrors = uint64(vs.vs_read_errors)
|
vdevs.Stat.ReadErrors = uint64(vs.vs_read_errors)
|
||||||
vdevs.Stat.WriteErrors = uint64(vs.vs_write_errors)
|
vdevs.Stat.WriteErrors = uint64(vs.vs_write_errors)
|
||||||
|
@ -225,6 +224,8 @@ func poolGetConfig(name string, nv *C.nvlist_t) (vdevs VDevTree, err error) {
|
||||||
}
|
}
|
||||||
vname := C.zpool_vdev_name(libzfsHandle, nil, C.nvlist_array_at(child, c),
|
vname := C.zpool_vdev_name(libzfsHandle, nil, C.nvlist_array_at(child, c),
|
||||||
C.B_TRUE)
|
C.B_TRUE)
|
||||||
|
|
||||||
|
var vdev VDevTree
|
||||||
vdev, err = poolGetConfig(C.GoString(vname),
|
vdev, err = poolGetConfig(C.GoString(vname),
|
||||||
C.nvlist_array_at(child, c))
|
C.nvlist_array_at(child, c))
|
||||||
C.free_cstring(vname)
|
C.free_cstring(vname)
|
||||||
|
|
Loading…
Reference in New Issue