Statistics
| Branch: | Revision:

root / block @ a22971f9

Name Size
Makefile.objs 795 Bytes
blkdebug.c 15.8 kB
blkverify.c 10.1 kB
bochs.c 7.1 kB
cloop.c 5.9 kB
commit.c 7.3 kB
cow.c 9.5 kB
curl.c 16.8 kB
dmg.c 10.3 kB
gluster.c 17.1 kB
iscsi.c 34.4 kB
linux-aio.c 5.5 kB
mirror.c 18.7 kB
nbd.c 18.4 kB
parallels.c 4.8 kB
qcow.c 27.2 kB
qcow2-cache.c 7.8 kB
qcow2-cluster.c 43.2 kB
qcow2-refcount.c 41.4 kB
qcow2-snapshot.c 18.6 kB
qcow2.c 51.9 kB
qcow2.h 12.2 kB
qed-check.c 6.5 kB
qed-cluster.c 5.1 kB
qed-gencb.c 688 Bytes
qed-l2-cache.c 5.9 kB
qed-table.c 8.4 kB
qed.c 46 kB
qed.h 10.8 kB
raw-aio.h 1.6 kB
raw-posix.c 49.1 kB
raw-win32.c 15.8 kB
raw.c 3.9 kB
rbd.c 24.7 kB
sheepdog.c 56.9 kB
stream.c 6.7 kB
vdi.c 24.7 kB
vmdk.c 49.4 kB
vpc.c 23.3 kB
vvfat.c 81.6 kB
win32-aio.c 5.9 kB

Latest revisions

# Date Author Comment
f9e8cacc 04/02/2013 06:47 pm Stefan Hajnoczi

oslib-posix: rename socket_set_nonblock() to qemu_set_nonblock()

The fcntl(fd, F_SETFL, O_NONBLOCK) flag is not specific to sockets.
Rename to qemu_set_nonblock() just like qemu_set_cloexec().

Signed-off-by: Stefan Hajnoczi <>
Reviewed-by: Eric Blake <>...

710c2496 03/28/2013 12:52 pm Kevin Wolf

qcow2: Use byte granularity in qcow2_alloc_cluster_offset()

This gets rid of the nb_clusters and keep_clusters and the associated
complicated calculations. Just advance the number of bytes that have
been processed and everything is fine.

This patch advances the variables even after the last operation even...

88c6588c 03/28/2013 12:52 pm Kevin Wolf

qcow2: Allow requests with multiple l2metas

Instead of expecting a single l2meta, have a list of them. This allows
to still have a single I/O request for the guest data, even though
multiple l2meta may be needed in order to describe both a COW overwrite
and a new cluster allocation (typical sequential write case)....

2c3b32d2 03/28/2013 12:52 pm Kevin Wolf

qcow2: Move cluster gathering to a non-looping loop

This patch is mainly to separate the indentation change from the
semantic changes. All that really changes here is that everything moves
into a while loop, all 'goto done' become 'break' and at the end of the...

ecdd5333 03/28/2013 12:52 pm Kevin Wolf

qcow2: Gather clusters in a looping loop

Instead of just checking once in exactly this order if there are
dependendies, non-COW clusters and new allocation, this starts looping
around these. This way we can, for example, gather non-COW clusters after
new allocations as long as the host cluster offsets stay contiguous....

0af729ec 03/28/2013 12:52 pm Kevin Wolf

qcow2: Factor out handle_copied()

Signed-off-by: Kevin Wolf <>
Signed-off-by: Stefan Hajnoczi <>

acb0467f 03/28/2013 12:52 pm Kevin Wolf

qcow2: handle_copied(): Get rid of nb_clusters parameter

handle_copied() uses its bytes parameter now to determine how many
clusters it should try to find.

Signed-off-by: Kevin Wolf <>
Signed-off-by: Stefan Hajnoczi <>

c53ede9f 03/28/2013 12:52 pm Kevin Wolf

qcow2: handle_copied(): Get rid of keep_clusters parameter

Now *bytes is used to return the length of the area that can be written
to without performing an allocation or COW.

Signed-off-by: Kevin Wolf <>
Signed-off-by: Stefan Hajnoczi <>

e62daaf6 03/28/2013 12:52 pm Kevin Wolf

qcow2: handle_copied(): Implement non-zero host_offset

Look only for clusters that start at a given physical offset.

Signed-off-by: Kevin Wolf <>
Signed-off-by: Stefan Hajnoczi <>

411d62b0 03/28/2013 12:52 pm Kevin Wolf

qcow2: Prepare handle_alloc/copied() for byte granularity

This makes handle_alloc() and handle_copied() return byte-granularity
host offsets instead of returning always the cluster start. This is
required so that qcow2_alloc_cluster_offset() can stop aligning...

View revisions

Also available in: Atom