diff options
author | talley <none@none> | 2005-12-12 18:24:59 -0800 |
---|---|---|
committer | talley <none@none> | 2005-12-12 18:24:59 -0800 |
commit | 3349c8dc868dbab8bd2e9355b835f83837de8900 (patch) | |
tree | ca64a4d9b22ea101f9029f9e66652d8dbc462666 /usr/src/lib/libzfs_jni | |
parent | df70e8968882f844dee28844a4d8f5ac2310b350 (diff) | |
download | illumos-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.c | 18 |
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)); } |