summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-11-23 17:17:57 +0000
committerRichard W.M. Jones <rjones@redhat.com>2012-11-23 17:17:57 +0000
commit1ef9af9acbd4cfaadb3f96e0e1a5e519fad2da9d (patch)
tree3bce2ae3e6742a13f36afdfbe82a1076b3799500
parentdd4038c8a4f7f1326f0399ea83f48c22a3ce6c2a (diff)
downloadlibguestfs-1ef9af9acbd4cfaadb3f96e0e1a5e519fad2da9d.tar.gz
libguestfs-1ef9af9acbd4cfaadb3f96e0e1a5e519fad2da9d.tar.xz
libguestfs-1ef9af9acbd4cfaadb3f96e0e1a5e519fad2da9d.zip
daemon: Ignore lvresize error "New size..matches existing size" (RHBZ#834712).
The lvresize command unnecessarily gives an error if you don't change the size of the LV. Suppress this error.
-rw-r--r--daemon/lvm.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/daemon/lvm.c b/daemon/lvm.c
index 24473f46..93820b24 100644
--- a/daemon/lvm.c
+++ b/daemon/lvm.c
@@ -295,6 +295,17 @@ do_lvcreate_free (const char *logvol, const char *volgroup, int percent)
return 0;
}
+/* The lvresize command unnecessarily gives an error if you don't
+ * change the size of the LV. Suppress this error.
+ * https://bugzilla.redhat.com/show_bug.cgi?id=834712
+ */
+static int
+ignore_same_size_error (const char *err)
+{
+ return strstr (err, "New size (") != NULL &&
+ strstr (err, "extents) matches existing size (") != NULL;
+}
+
int
do_lvresize (const char *logvol, int mbytes)
{
@@ -308,9 +319,11 @@ do_lvresize (const char *logvol, int mbytes)
str_lvm, "lvresize",
"--force", "-L", size, logvol, NULL);
if (r == -1) {
- reply_with_error ("%s", err);
- free (err);
- return -1;
+ if (!ignore_same_size_error (err)) {
+ reply_with_error ("%s", err);
+ free (err);
+ return -1;
+ }
}
free (err);
@@ -334,9 +347,11 @@ do_lvresize_free (const char *logvol, int percent)
r = command (NULL, &err,
str_lvm, "lvresize", "-l", size, logvol, NULL);
if (r == -1) {
- reply_with_error ("%s", err);
- free (err);
- return -1;
+ if (!ignore_same_size_error (err)) {
+ reply_with_error ("%s", err);
+ free (err);
+ return -1;
+ }
}
free (err);