diff options
author | Richard Jones <rjones@redhat.com> | 2010-04-12 16:33:46 +0100 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2010-04-12 18:55:18 +0100 |
commit | 2bec01ba1fcceb4880aa991e599920be9b68996a (patch) | |
tree | f117fbacd152dbcf656a4fe691028cb168be7398 /daemon/lvm.c | |
parent | 508f1ee87e816bf6b6fc8e629ccbb2d61a971169 (diff) | |
download | libguestfs-2bec01ba1fcceb4880aa991e599920be9b68996a.tar.gz libguestfs-2bec01ba1fcceb4880aa991e599920be9b68996a.tar.xz libguestfs-2bec01ba1fcceb4880aa991e599920be9b68996a.zip |
New API: lvresize-free to extend LVs into percentage of free space.
Diffstat (limited to 'daemon/lvm.c')
-rw-r--r-- | daemon/lvm.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/daemon/lvm.c b/daemon/lvm.c index 20f2fb33..e44f4c26 100644 --- a/daemon/lvm.c +++ b/daemon/lvm.c @@ -278,6 +278,32 @@ do_lvresize (const char *logvol, int mbytes) return 0; } +int +do_lvresize_free (const char *logvol, int percent) +{ + char *err; + int r; + + if (percent < 0 || percent > 100) { + reply_with_error ("percentage must be [0..100] (was %d)", percent); + return -1; + } + + char size[64]; + snprintf (size, sizeof size, "+%d%%FREE", percent); + + r = command (NULL, &err, + "lvm", "lvresize", "-l", size, logvol, NULL); + if (r == -1) { + reply_with_error ("%s", err); + free (err); + return -1; + } + + free (err); + return 0; +} + /* Super-dangerous command used for testing. It removes all * LVs, VGs and PVs permanently. */ |