thank you for your reply, and i am glad to join to the development of qemu. i will try my best to finish this new function.
have a good day! zhangzhiming zhangzhimin...@meituan.com > On May 3, 2016, at 4:44 PM, Kevin Wolf <kw...@redhat.com> wrote: > > [ Cc: qemu-block ] > > Am 29.04.2016 um 10:59 hat zhangzm geschrieben: >> hi, i want to implement the function of qcow2 resize which has >> snapshots. >> >> each snapshot of qcow2 will have a separate total size, and when apply >> a snapshot, the image can be shrunk, and the total size of image will >> change after apply to a snapshot with different size. >> >> now, there is a disk_size value in struct QcowSnapshot, i only need to >> change the size of current active image layer when apply a snapshot >> with different size, and the io request will be limit in the range of >> active layer. > > Yes, I think today the qcow2 format provides everything that is needed > to implement this. You need to make sure that we have a v3 image so that > the virtual disk size is actually stored in the snapshot (this field did > not exist in v2 images yet). > > What you need to consider is that loading a snapshot becomes similar to > resizing an image then and you need to do the same things for it. For > example, we need to figure out what to do with associated dirty bitmaps > (adapt them to the new size like in bdrv_truncate()?), call resize > callbacks so that the guest devices actually see the changes size and > possibly also consider the BLOCK_OP_TYPE_RESIZE blockers to prevent a > size change while the image is in use. > >> and i want my code merged into the master of qemu. > > The wiki has a few tips on how to submit patches for qemu: > http://wiki.qemu.org/Contribute/SubmitAPatch > > For a patch (or patch series) like this, you will want to CC at least > qemu-block and qemu-devel, plus possibly a few individual people. > > Kevin >