* src/generator.ml: Change all `String "device"' to `Device "device"'.
[libguestfs.git] / daemon / ext2.c
index 639ae5d..04869da 100644 (file)
@@ -1,5 +1,5 @@
 /* libguestfs - the guestfsd daemon
- * Copyright (C) 2009 Red Hat Inc. 
+ * Copyright (C) 2009 Red Hat Inc.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 #include "actions.h"
 
 char **
-do_tune2fs_l (const char *device)
+do_tune2fs_l (char *device)
 {
   int r;
   char *out, *err;
@@ -36,8 +36,6 @@ do_tune2fs_l (const char *device)
   char **ret = NULL;
   int size = 0, alloc = 0;
 
-  IS_DEVICE (device, NULL);
-
   r = command (&out, &err, "/sbin/tune2fs", "-l", device, NULL);
   if (r == -1) {
     reply_with_error ("tune2fs: %s", err);
@@ -77,31 +75,31 @@ do_tune2fs_l (const char *device)
       do { colon++; } while (*colon && isspace (*colon));
 
       if (add_string (&ret, &size, &alloc, p) == -1) {
-       free (out);
-       return NULL;
+        free (out);
+        return NULL;
       }
       if (strcmp (colon, "<none>") == 0 ||
-         strcmp (colon, "<not available>") == 0 ||
-         strcmp (colon, "(none)") == 0) {
-       if (add_string (&ret, &size, &alloc, "") == -1) {
-         free (out);
-         return NULL;
-       }
+          strcmp (colon, "<not available>") == 0 ||
+          strcmp (colon, "(none)") == 0) {
+        if (add_string (&ret, &size, &alloc, "") == -1) {
+          free (out);
+          return NULL;
+        }
       } else {
-       if (add_string (&ret, &size, &alloc, colon) == -1) {
-         free (out);
-         return NULL;
-       }
+        if (add_string (&ret, &size, &alloc, colon) == -1) {
+          free (out);
+          return NULL;
+        }
       }
     }
     else {
       if (add_string (&ret, &size, &alloc, p) == -1) {
-       free (out);
-       return NULL;
+        free (out);
+        return NULL;
       }
       if (add_string (&ret, &size, &alloc, "") == -1) {
-       free (out);
-       return NULL;
+        free (out);
+        return NULL;
       }
     }
 
@@ -117,7 +115,7 @@ do_tune2fs_l (const char *device)
 }
 
 int
-do_set_e2label (const char *device, const char *label)
+do_set_e2label (char *device, char *label)
 {
   int r;
   char *err;
@@ -134,7 +132,7 @@ do_set_e2label (const char *device, const char *label)
 }
 
 char *
-do_get_e2label (const char *device)
+do_get_e2label (char *device)
 {
   int r, len;
   char *out, *err;
@@ -158,7 +156,7 @@ do_get_e2label (const char *device)
 }
 
 int
-do_set_e2uuid (const char *device, const char *uuid)
+do_set_e2uuid (char *device, char *uuid)
 {
   int r;
   char *err;
@@ -175,7 +173,7 @@ do_set_e2uuid (const char *device, const char *uuid)
 }
 
 char *
-do_get_e2uuid (const char *device)
+do_get_e2uuid (char *device)
 {
   int r;
   char *out, *err, *p, *q;
@@ -236,13 +234,11 @@ do_get_e2uuid (const char *device)
 }
 
 int
-do_resize2fs (const char *device)
+do_resize2fs (char *device)
 {
   char *err;
   int r;
 
-  IS_DEVICE (device, -1);
-
   r = command (NULL, &err, "/sbin/resize2fs", device, NULL);
   if (r == -1) {
     reply_with_error ("resize2fs: %s", err);
@@ -253,3 +249,20 @@ do_resize2fs (const char *device)
   free (err);
   return 0;
 }
+
+int
+do_e2fsck_f (char *device)
+{
+  char *err;
+  int r;
+
+  r = command (NULL, &err, "/sbin/e2fsck", "-p", "-f", device, NULL);
+  if (r == -1) {
+    reply_with_error ("e2fsck: %s", err);
+    free (err);
+    return -1;
+  }
+
+  free (err);
+  return 0;
+}