• M
    storage: resize vol against real allocated size · b0579ed9
    Michal Privoznik 提交于
    Currently, 'vol-resize --allocate' allocates new space at the
    vol->capacity offset. But the vol->capacity is not necessarily the same
    as vol->allocation. For instance:.
    
    	[root@localhost ~]# virsh vol-list --pool tmp-pool --details
    	 Name      Path                   Type  Capacity  Allocation
    	-------------------------------------------------------------
    	 tmp-vol  /root/tmp-pool/tmp-vol  file  1.00 GiB  1.00 GiB
    
    	[root@localhost ~]# virsh vol-resize tmp-vol --pool tmp-pool 2G
    
    	[root@localhost ~]# virsh vol-list --pool tmp-pool --details
    	 Name      Path                   Type  Capacity  Allocation
    	-------------------------------------------------------------
    	 tmp-vol  /root/tmp-pool/tmp-vol  file  2.00 GiB  1.00 GiB
    
    So, if we want to allocate more bytes, so the file is say 3G big, the
    real allocated size is 2G actually:
    
    	[root@localhost ~]# virsh vol-resize tmp-vol --pool tmp-pool 3G --allocate
    
    	[root@localhost ~]# virsh vol-list --pool tmp-pool --details
    	 Name      Path                   Type  Capacity  Allocation
    	-------------------------------------------------------------
    	 tmp-vol  /root/tmp-pool/tmp-vol  file  3.00 GiB  2.00 GiB
    
    This commit uses the correct vol->allocation instead of incorrect
    vol->capacity, so the output of the commands above looks like this:
    
    	[root@localhost ~]# virsh vol-resize tmp-vol --pool tmp-pool 3G --allocate
    
    	[root@localhost ~]# virsh vol-list --pool tmp-pool --details
    	 Name      Path                   Type  Capacity  Allocation
    	-------------------------------------------------------------
    	 tmp-vol  /root/tmp-pool/tmp-vol  file  3.00 GiB  3.00 GiB
    
    Moreover, if the '--alocate' flag was used, we must update the
    vol->allocation member in storageVolResize API too, not just
    vol->capacity.
    Reported-by: NWang Sen <wangsen@linux.vnet.ibm.com>
    Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
    b0579ed9
storage_backend_fs.c 42.2 KB