summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-05-21 14:14:59 +0100
committerRichard Jones <rjones@redhat.com>2010-05-21 14:51:57 +0100
commit7cb6fac3074c52ac3c3e9ead5d99e4a2887cf7b1 (patch)
treef4a337eef51e6efd0d70bce8333824211cef6cab
parent9be89728f2a0ff17d54a0dba981015fa6405eb50 (diff)
downloadlibguestfs-7cb6fac3074c52ac3c3e9ead5d99e4a2887cf7b1.tar.gz
libguestfs-7cb6fac3074c52ac3c3e9ead5d99e4a2887cf7b1.tar.xz
libguestfs-7cb6fac3074c52ac3c3e9ead5d99e4a2887cf7b1.zip
New API: ntfsresize-size to allow shrinking NTFS (RHBZ#585223).
-rw-r--r--daemon/ntfs.c21
-rw-r--r--src/MAX_PROC_NR2
-rwxr-xr-xsrc/generator.ml7
3 files changed, 29 insertions, 1 deletions
diff --git a/daemon/ntfs.c b/daemon/ntfs.c
index 8938dbde..46b8333e 100644
--- a/daemon/ntfs.c
+++ b/daemon/ntfs.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <inttypes.h>
#include <string.h>
#include <unistd.h>
@@ -75,3 +76,23 @@ do_ntfsresize (const char *device)
return 0;
}
+
+int
+do_ntfsresize_size (const char *device, int64_t size)
+{
+ char *err;
+ int r;
+
+ char buf[32];
+ snprintf (buf, sizeof buf, "%" PRIi64, size);
+
+ r = command (NULL, &err, "ntfsresize", "-P", "--size", buf,
+ device, NULL);
+ if (r == -1) {
+ reply_with_error ("%s: %s", device, err);
+ free (err);
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR
index e06108c0..cb1a40df 100644
--- a/src/MAX_PROC_NR
+++ b/src/MAX_PROC_NR
@@ -1 +1 @@
-247
+250
diff --git a/src/generator.ml b/src/generator.ml
index 1032a1a2..95a26370 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -4700,6 +4700,13 @@ allows you to specify the new size (in bytes) explicitly.");
This command is the same as C<guestfs_pvresize> except that it
allows you to specify the new size (in bytes) explicitly.");
+ ("ntfsresize_size", (RErr, [Device "device"; Int64 "size"]), 250, [Optional "ntfsprogs"],
+ [],
+ "resize an NTFS filesystem (with size)",
+ "\
+This command is the same as C<guestfs_ntfsresize> except that it
+allows you to specify the new size (in bytes) explicitly.");
+
]
let all_functions = non_daemon_functions @ daemon_functions