On 31.05.2013 07:16, Osier Yang wrote: > As the document for "virsh-resize" says: > <...> > Attempts to shrink the volume will fail unless I<--shrink> is present; > </...> > > This makes sense as it at least prevent the user shrinking the important > data of volume without a notice. > --- > src/storage/storage_driver.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c > index e7516eb..858aeca 100644 > --- a/src/storage/storage_driver.c > +++ b/src/storage/storage_driver.c > @@ -1762,7 +1762,8 @@ storageVolResize(virStorageVolPtr obj, > int ret = -1; > > virCheckFlags(VIR_STORAGE_VOL_RESIZE_ALLOCATE | > - VIR_STORAGE_VOL_RESIZE_DELTA, -1); > + VIR_STORAGE_VOL_RESIZE_DELTA | > + VIR_STORAGE_VOL_RESIZE_SHRINK, -1); > > storageDriverLock(driver); > pool = virStoragePoolObjFindByName(&driver->pools, obj->pool); > @@ -1814,6 +1815,14 @@ storageVolResize(virStorageVolPtr obj, > goto out; > } > > + if (abs_capacity < vol->capacity && > + !(flags & VIR_STORAGE_VOL_RESIZE_SHRINK)) { > + virReportError(VIR_ERR_INVALID_ARG, "%s", > + _("Can't shrink capacity below current " > + "capacity with shrink flag explicitly specified")); > + goto out; > + } > + > if (abs_capacity > vol->capacity + pool->def->available) { > virReportError(VIR_ERR_OPERATION_FAILED, "%s", > _("Not enough space left on storage pool")); > ACK Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list