[pve-devel] [PATCH] rbd : add writethrough/writeback option
Dietmar Maurer
dietmar at proxmox.com
Mon Jun 18 06:18:12 CEST 2012
committed, thanks.
> -----Original Message-----
> From: pve-devel-bounces at pve.proxmox.com [mailto:pve-devel-
> bounces at pve.proxmox.com] On Behalf Of Alexandre Derumier
> Sent: Samstag, 16. Juni 2012 16:03
> To: pve-devel at pve.proxmox.com
> Subject: [pve-devel] [PATCH] rbd : add writethrough/writeback option
>
> This patch add writethrough/writeback support to qemu-rbd.
> It'll be merge in qemu 1.2, as 1.1 in feature froze for the moment.
>
> Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
> ---
> debian/patches/rbd-enable-cacheoption.patch | 37
> +++++++++++++++++++++++++++
> debian/patches/series | 1 +
> 2 files changed, 38 insertions(+), 0 deletions(-) create mode 100644
> debian/patches/rbd-enable-cacheoption.patch
>
> diff --git a/debian/patches/rbd-enable-cacheoption.patch
> b/debian/patches/rbd-enable-cacheoption.patch
> new file mode 100644
> index 0000000..864b134
> --- /dev/null
> +++ b/debian/patches/rbd-enable-cacheoption.patch
> @@ -0,0 +1,37 @@
> +Signed-off-by: Josh Durgin <address at hidden>
> +---
> + block/rbd.c | 19 +++++++++++++++++++
> + 1 files changed, 19 insertions(+), 0 deletions(-)
> +
> +diff --git a/block/rbd.c b/block/rbd.c
> +index 1280d66..eebc334 100644
> +--- a/block/rbd.c
> ++++ b/block/rbd.c
> +@@ -476,6 +476,25 @@ static int qemu_rbd_open(BlockDriverState *bs,
> const char *filename, int flags)
> + s->snap = g_strdup(snap_buf);
> + }
> +
> ++ /*
> ++ * Fallback to more conservative semantics if setting cache
> ++ * options fails. Ignore errors from setting rbd_cache because the
> ++ * only possible error is that the option does not exist, and
> ++ * librbd defaults to no caching. If write through caching cannot
> ++ * be set up, fall back to no caching.
> ++ */
> ++ if (flags & BDRV_O_NOCACHE) {
> ++ rados_conf_set(s->cluster, "rbd_cache", "false");
> ++ } else {
> ++ rados_conf_set(s->cluster, "rbd_cache", "true");
> ++ if (!(flags & BDRV_O_CACHE_WB)) {
> ++ r = rados_conf_set(s->cluster, "rbd_cache_max_dirty", "0");
> ++ if (r < 0) {
> ++ rados_conf_set(s->cluster, "rbd_cache", "false");
> ++ }
> ++ }
> ++ }
> ++
> + if (strstr(conf, "conf=") == NULL) {
> + /* try default location, but ignore failure */
> + rados_conf_read_file(s->cluster, NULL);
> +--
> +1.7.5.4
> diff --git a/debian/patches/series b/debian/patches/series index
> 4b5d221..ab59a91 100644
> --- a/debian/patches/series
> +++ b/debian/patches/series
> @@ -5,3 +5,4 @@ keymap.diff
> set-max-nics.patch
> pve-auth.patch
> update-cpus-x86_64.conf-to-rhel6.2-version.patch
> +rbd-enable-cacheoption.patch
> --
> 1.7.2.5
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list