I've just changed last patch to new one that uses loop iteration instead of 
recursion. https://lists.gnu.org/archive/html/qemu-block/2016-04/msg00584.html

At first, a head of chain has checked it's status by bdrv_get_block_status in 
"convert_iteration_sectors".
If this status is not BDRV_BLOCK_DATA nor BDRV_BLOCK_ZERO, then check backing 
files by using new function, get_backing_status.
This function iterates backing files chain and return the status 
BDRV_BLOCK_DATA, BDRV_BLOCK_ZERO or error(< 0) caused by bdrv_get_block_status.
When none of backing files has valid status(i.e. backing file which must have 
data doesn't exist), then return -1(< 0) and goto fail.


Reply via email to