Il 03/04/2013 11:02, Wenchao Xia ha scritto: >> > Sorry I haven't state it clearly. What about bdrv_snapshot_create() > operation? If it need to be rolled back, I think bdrv_snapshot_delete() > will get called and it may fail. But in most case if > bdrv_snapshot_create() succeed before, the bdrv_snapshot_delete should > succeed also, so if fail there may be unexpected error below, could > assert be used for this?
No. Transactionable means that commit and rollback cannot fail. For bdrv_snapshot_create() it is the same as for bdrv_snapshot_delete() (the overview I wrote was for qcow2_write_snapshots, which is the common part of bdrv_snapshot_create() and bdrv_snapshot_delete()). Please do one thing at a time. Split the series in multiple pieces if possible. Otherwise you will just fail, and you will have wasted a lot of your and other people's time. Paolo