From 3e408f493496597dc026d20778837f421f05a9dd Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Thu, 21 May 2009 16:18:16 +0100 Subject: Generated code for e2fsck-f command. --- java/com/redhat/et/libguestfs/GuestFS.java | 29 +++++++++++++++++++++++++++++ java/com_redhat_et_libguestfs_GuestFS.c | 17 +++++++++++++++++ 2 files changed, 46 insertions(+) (limited to 'java') diff --git a/java/com/redhat/et/libguestfs/GuestFS.java b/java/com/redhat/et/libguestfs/GuestFS.java index f4cec79c..6e2304e6 100644 --- a/java/com/redhat/et/libguestfs/GuestFS.java +++ b/java/com/redhat/et/libguestfs/GuestFS.java @@ -2939,6 +2939,13 @@ public class GuestFS { * This resizes an ext2 or ext3 filesystem to match the * size of the underlying device. * + * *Note:* It is sometimes required that you run + * "g.e2fsck_f" on the "device" before calling this + * command. For unknown reasons "resize2fs" sometimes gives + * an error about this and sometimes not. In any case, it + * is always safe to call "g.e2fsck_f" before calling this + * function. + * * @throws LibGuestFSException */ public void resize2fs (String device) @@ -2992,4 +2999,26 @@ public class GuestFS { private native String[] _find (long g, String directory) throws LibGuestFSException; + /** + * check an ext2/ext3 filesystem + * + * This runs "e2fsck -p -f device", ie. runs the ext2/ext3 + * filesystem checker on "device", noninteractively ("-p"), + * even if the filesystem appears to be clean ("-f"). + * + * This command is only needed because of "g.resize2fs" + * (q.v.). Normally you should use "g.fsck". + * + * @throws LibGuestFSException + */ + public void e2fsck_f (String device) + throws LibGuestFSException + { + if (g == 0) + throw new LibGuestFSException ("e2fsck_f: handle is closed"); + _e2fsck_f (g, device); + } + private native void _e2fsck_f (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 1e7f9de5..dea916e9 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -2963,3 +2963,20 @@ Java_com_redhat_et_libguestfs_GuestFS__1find return jr; } +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1e2fsck_1f + (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_e2fsck_f (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + -- cgit