At Thu, 3 May 2012 18:25:45 +0800, levin li wrote: > > Take a view of the following snapshot chain: > > base vdi --> snapshot vdi --> cloned vdi > > when cloned vdi has its own data objects created by copy-on-write, > we firstly delete the cloned vdi, the delete the base vdi, at last > we delete snapshot vdi. > > when deleting the snapshot vdi, it try to traverse the snapshot chain to > cleanup all the data objects, but the copy-on-write objects has been What does 'copy-on-write objects' mean here? Data objects of the cloned VDI? > deleted by the first deletion work, so it may get failed and set the > dw->delete_error to be true, it doesn't matter for the future deletion, I'm not sure why dw->delete_error could be true even if there is no problem. The current delete process also traverse the already deleted VDIs? If so, it should be modified, I think. BTW, It seems that the snapshot/clone code of the latest master is broken, so I couldn't test your example on my environemnt at all. Does the latest sheepdog code works on your environment correctly? Thanks, Kazutaka |