summaryrefslogtreecommitdiff
path: root/usr/src/lib/libzfs_jni
diff options
context:
space:
mode:
authortalley <none@none>2005-12-12 18:24:59 -0800
committertalley <none@none>2005-12-12 18:24:59 -0800
commit3349c8dc868dbab8bd2e9355b835f83837de8900 (patch)
treeca64a4d9b22ea101f9029f9e66652d8dbc462666 /usr/src/lib/libzfs_jni
parentdf70e8968882f844dee28844a4d8f5ac2310b350 (diff)
downloadillumos-joyent-3349c8dc868dbab8bd2e9355b835f83837de8900.tar.gz
6351004 capacity of pool in zfs gui is not consistent with the output of zpool list
Diffstat (limited to 'usr/src/lib/libzfs_jni')
-rw-r--r--usr/src/lib/libzfs_jni/common/libzfs_jni_dataset.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/usr/src/lib/libzfs_jni/common/libzfs_jni_dataset.c b/usr/src/lib/libzfs_jni/common/libzfs_jni_dataset.c
index 124e52d8e1..4bcdd1f561 100644
--- a/usr/src/lib/libzfs_jni/common/libzfs_jni_dataset.c
+++ b/usr/src/lib/libzfs_jni/common/libzfs_jni_dataset.c
@@ -56,6 +56,8 @@ typedef struct FileSystemBean {
typedef struct PoolBean {
FileSystemBean_t super;
+
+ jmethodID method_setSize;
} PoolBean_t;
typedef struct VolumeBean {
@@ -163,6 +165,9 @@ new_PoolBean(JNIEnv *env, PoolBean_t *bean)
(*env)->NewObject(env, object->class, object->constructor);
}
+ bean->method_setSize = (*env)->GetMethodID(
+ env, object->class, "setSize", "(J)V");
+
new_FileSystemBean(env, (FileSystemBean_t *)bean);
}
@@ -335,6 +340,19 @@ populate_DatasetBean(JNIEnv *env, zfs_handle_t *zhp, DatasetBean_t *bean)
static int
populate_PoolBean(JNIEnv *env, zfs_handle_t *zhp, PoolBean_t *bean)
{
+ zjni_Object_t *object = (zjni_Object_t *)bean;
+ const char *name = zfs_get_name(zhp);
+ zpool_handle_t *zphp = zpool_open_canfail(name);
+
+ if (zphp == NULL) {
+ return (-1);
+ }
+
+ (*env)->CallVoidMethod(env, object->object,
+ bean->method_setSize, zpool_get_space_total(zphp));
+
+ zpool_close(zphp);
+
return (populate_FileSystemBean(env, zhp, (FileSystemBean_t *)bean));
}