On 01/16/2013 09:24 AM, Benoît Canet wrote: > This function is used to read missing data when unaligned writes are > done. This function also concatenate missing data with the given > qiov data in order to prepare a buffer used to look for duplicated > clusters. > > Signed-off-by: Benoit Canet <ben...@irqsave.net> > --- > block/Makefile.objs | 1 + > block/qcow2-dedup.c | 119 > +++++++++++++++++++++++++++++++++++++++++++++++++++ > block/qcow2.c | 36 +++++++++++++++- > block/qcow2.h | 12 ++++++ > 4 files changed, 167 insertions(+), 1 deletion(-) > create mode 100644 block/qcow2-dedup.c
I'm not an expert in this area of code, so I didn't review it closely. However, I did notice this: > +++ b/block/qcow2.c > @@ -69,7 +69,6 @@ static int qcow2_probe(const uint8_t *buf, int buf_size, > const char *filename) > return 0; > } > > - > /* > * read qcow2 extension and fill bs > * start reading from start_offset Spurious whitespace change. > @@ -1110,6 +1109,41 @@ fail: > return ret; > } > > +/** > + * Read some data from the QCOW2 file > + * > + * Important: s->lock is dropped. Things can change before the function > return s/return/returns/ > + * to the caller. > + * > + * @data: the buffer where the data must be stored > + * @sector_num: the sector number to read in the QCOW2 file > + * @nb_sectors: the number of sectors to read > + * @ret: negative on error > + */ > +int qcow2_read_cluster_data(BlockDriverState *bs, > + uint8_t *data, > + uint64_t sector_num, > + int nb_sectors) -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature