History | View | Annotate | Download (21.8 kB)
block: change flush to co_flush
Since coroutine operation is now mandatory, convert all bdrv_flushimplementations to coroutines. For qcow2, this means taking the lock.Other implementations are simpler and just forward bdrv_flush to theunderlying protocol, so they can avoid the lock....
rbd: allow escaping in config string
The config string is variously delimited by =, @, and /, depending on thefield. Allow these characters to be escaped by preceeding them with \.
Signed-off-by: Sage Weil <sage@newdream.net>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
rbd: ignore failures when reading from default conf location
If we are reading from the default config location, ignore any failures.It is perfectly legal for the user to specify exactly the options they needand to not rely on any config file.
Signed-off-by: Sage Weil <sage@newdream.net>...
rbd: update comment heading
Properly document the configuration string syntax and semantics. Remove(out of date) details about the librbd implementation.
rbd: call flush, if available
librbd recently added async writeback and flush support. If the newrbd_flush() call is available, call it.
rbd: clean up, fix style
No assignment in condition. Remove duplicate ret > 0 check.
Signed-off-by: Sage Weil <sage@newdream.net>Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
rbd: fix leak in qemu_rbd_open failure paths
Fix leak of s->snap in failure path. Simplify error paths for the wholefunction.
Reported-by: Stefan Hajnoczi <stefanha@gmail.com>Signed-off-by: Sage Weil <sage@newdream.net>Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>...
rbd: allow client id to be specified in config string
Allow the client id to be specified in the config string via 'id=' so thatusers can control who they authenticate as. Currently they are stuck withthe default ('admin'). This is necessary for anyone using authentication...
Use glib memory allocation and free functions
qemu_malloc/qemu_free no longer exist after this commit.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
block/rbd: Remove unused local variable
Variable 'snap' is assigned a value that is never used.Remove snap and the related code.
Cc: Christian Brunner <chb@muc.de>Cc: Josh Durgin <josh.durgin@dreamhost.com>Cc: Kevin Wolf <kwolf@redhat.com>Signed-off-by: Stefan Weil <weil@mail.berlios.de>...
rbd: allow configuration of rados from the rbd filename
The new format is rbd:pool/image[@snapshot][:option1=value1[:option2=value2...]]Each option is used to configure rados, and may be any Ceph option, or "conf".The "conf" option specifies a Ceph configuration file to read....
rbd: check return values when scheduling aio
If scheduling fails, the number of outstanding I/Os must be correct,or there will be a hang when waiting for everything to be flushed.
Reviewed-by: Christian Brunner <chb@muc.de>Reported-by: Stefan Hajnoczi <stefanha@gmail.com>...
rbd: Add bdrv_truncate implementation
Reviewed-by: Christian Brunner <chb@muc.de>Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
rbd: use the higher level librbd instead of just librados
librbd stacks on top of librados to provide accessto rbd images.
Using librbd simplifies the qemu code, and allowsqemu to use new versions of the rbd formatwith few (if any) changes.
Reviewed-by: Christian Brunner <chb@muc.de>...
ceph/rbd block driver for qemu-kvm
RBD is an block driver for the distributed file system Ceph(http://ceph.newdream.net/). This driver uses librados (which is partof the Ceph server) for direct access to the Ceph object store and isrunning entirely in userspace (Yehuda also wrote a driver for the...