diff options
-rw-r--r-- | daemon/lvm.c | 24 | ||||
-rwxr-xr-x | src/generator.ml | 7 |
2 files changed, 31 insertions, 0 deletions
diff --git a/daemon/lvm.c b/daemon/lvm.c index 18d6519f..70c3c904 100644 --- a/daemon/lvm.c +++ b/daemon/lvm.c @@ -20,6 +20,7 @@ #include <stdio.h> #include <stdlib.h> +#include <inttypes.h> #include <string.h> #include <unistd.h> @@ -453,6 +454,29 @@ do_pvresize (const char *device) } int +do_pvresize_size (const char *device, int64_t size) +{ + char *err; + int r; + + char buf[32]; + snprintf (buf, sizeof buf, "%" PRIi64 "b", size); + + r = command (NULL, &err, + "lvm", "pvresize", + "--setphysicalvolumesize", buf, + device, NULL); + if (r == -1) { + reply_with_error ("%s: %s", device, err); + free (err); + return -1; + } + + free (err); + return 0; +} + +int do_vg_activate (int activate, char *const *volgroups) { char *err; diff --git a/src/generator.ml b/src/generator.ml index b2ba5139..1032a1a2 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -4693,6 +4693,13 @@ See also C<guestfs_pread>."); This command is the same as C<guestfs_resize2fs> except that it allows you to specify the new size (in bytes) explicitly."); + ("pvresize_size", (RErr, [Device "device"; Int64 "size"]), 249, [Optional "lvm2"], + [], + "resize an LVM physical volume (with size)", + "\ +This command is the same as C<guestfs_pvresize> except that it +allows you to specify the new size (in bytes) explicitly."); + ] let all_functions = non_daemon_functions @ daemon_functions |