On Mon, 07/15 05:42, Xu Wang wrote: > If there is loop exists in the backing file chain, many problems > could be caused by it, such as no response and segment fault during > system boot. Hence stopping backing file loop appear is very necessary. > These patches refine and export loop checking function from collect_image_ > info_list() to block.c and build a independent function named bdrv_ > backing_file_loop_check(). Backing file loop checking is added before > image created, before change backing file and before system boot. > > Updates from V2: > 1. Removed parameter @chain from bdrv_backing_file_loop_check() > 2. Comments and format fix, all patches were checked by checkpatch.pl > 3. Fixed *bs leak. > 4. Improved logic of .lnk file recognization. > 5. Add filename lenth limit check in while() > 6. Changed get_win_inode() to get_inode() and move all inode get method > into it to make logic more simpler. > 7. Added value of @fmt as suggested. > 8. Added backing file loop check in qcow2.c/qed.c
Would you consider adding check in vmdk.c too, As it also supports backing_hd? Thanks. Fam > > Xu Wang (7): > block/qemu-img: Refine and export infinite loop checking in > collect_image_info_list() > block: Add WIN32 platform support for backing_file_loop_check() > block: Check infinite loop in bdrv_img_create() > block: Add backing file loop check in change_backing_file() > block: Add infinite loop check in drive_init() > block: Add backing file loop check in qcow2_change_backing_file() > block: Add backing file loop check in qed_change_backing_file() > > block.c | 207 > ++++++++++++++++++++++++++++++++++++++++++++++++-- > block/qcow2.c | 6 ++ > block/qed.c | 7 ++ > blockdev.c | 6 ++ > include/block/block.h | 4 + > qemu-img.c | 29 +++---- > 6 files changed, 234 insertions(+), 25 deletions(-) > > -- > 1.8.1.4 >