diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-11-23 17:17:57 +0000 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-11-23 17:17:57 +0000 |
commit | 1ef9af9acbd4cfaadb3f96e0e1a5e519fad2da9d (patch) | |
tree | 3bce2ae3e6742a13f36afdfbe82a1076b3799500 | |
parent | dd4038c8a4f7f1326f0399ea83f48c22a3ce6c2a (diff) | |
download | libguestfs-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.c | 27 |
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); |