summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2009-05-14 23:47:17 +0100
committerRichard W.M. Jones <rjones@redhat.com>2009-05-14 23:47:17 +0100
commitd901cc916102f1aaccfb73396b48aa303e5b8cd7 (patch)
tree7c2fd470088874ab99b5922393327170e653cf01 /java
parent4aa4ecc380edc509aba886417c67d9c39ab51c9a (diff)
downloadlibguestfs-d901cc916102f1aaccfb73396b48aa303e5b8cd7.tar.gz
libguestfs-d901cc916102f1aaccfb73396b48aa303e5b8cd7.tar.xz
libguestfs-d901cc916102f1aaccfb73396b48aa303e5b8cd7.zip
Add support for zerofree command.
Diffstat (limited to 'java')
-rw-r--r--java/com/redhat/et/libguestfs/GuestFS.java26
-rw-r--r--java/com_redhat_et_libguestfs_GuestFS.c17
2 files changed, 43 insertions, 0 deletions
diff --git a/java/com/redhat/et/libguestfs/GuestFS.java b/java/com/redhat/et/libguestfs/GuestFS.java
index c816baa0..76ada908 100644
--- a/java/com/redhat/et/libguestfs/GuestFS.java
+++ b/java/com/redhat/et/libguestfs/GuestFS.java
@@ -2729,4 +2729,30 @@ public class GuestFS {
private native String _hexdump (long g, String path)
throws LibGuestFSException;
+ /**
+ * zero unused inodes and disk blocks on ext2/3 filesystem
+ *
+ * This runs the *zerofree* program on "device". This
+ * program claims to zero unused inodes and disk blocks on
+ * an ext2/3 filesystem, thus making it possible to
+ * compress the filesystem more effectively.
+ *
+ * You should not run this program if the filesystem is
+ * mounted.
+ *
+ * It is possible that using this program can damage the
+ * filesystem or data on the filesystem.
+ *
+ * @throws LibGuestFSException
+ */
+ public void zerofree (String device)
+ throws LibGuestFSException
+ {
+ if (g == 0)
+ throw new LibGuestFSException ("zerofree: handle is closed");
+ _zerofree (g, device);
+ }
+ private native void _zerofree (long g, String device)
+ throws LibGuestFSException;
+
}
diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c
index ce1f2dbf..a823d84e 100644
--- a/java/com_redhat_et_libguestfs_GuestFS.c
+++ b/java/com_redhat_et_libguestfs_GuestFS.c
@@ -2722,3 +2722,20 @@ Java_com_redhat_et_libguestfs_GuestFS__1hexdump
return jr;
}
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1zerofree
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_zerofree (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+