From: Michael Tokarev <mjt@tls.msk.ru>
To: Liu Yuan <namei.unix@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
qemu-devel@nongnu.org, morita.kazutaka@lab.ntt.co.jp
Subject: Re: [Qemu-devel] [PATCH] sheepdog: implement SD_OP_FLUSH_VDI operation
Date: Tue, 03 Apr 2012 00:01:38 +0400 [thread overview]
Message-ID: <4F7A05A2.4010301@msgid.tls.msk.ru> (raw)
In-Reply-To: <1333388150-12491-1-git-send-email-namei.unix@gmail.com>
On 02.04.2012 21:35, Liu Yuan wrote:
> From: Liu Yuan <tailai.ly@taobao.com>
>
> Flush operation is supposed to flush the write-back cache of
> sheepdog cluster.
>
> By issuing flush operation, we can assure the Guest of data
> reaching the sheepdog cluster storage.
>
> Cc: Kevin Wolf <kwolf@redhat.com>
> Reviewd-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
> Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
> ---
> block/sheepdog.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 50 insertions(+), 0 deletions(-)
>
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 00276f6f..c08c69b 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -32,9 +32,11 @@
> #define SD_OP_RELEASE_VDI 0x13
> #define SD_OP_GET_VDI_INFO 0x14
> #define SD_OP_READ_VDIS 0x15
> +#define SD_OP_FLUSH_VDI 0x16
>
> #define SD_FLAG_CMD_WRITE 0x01
> #define SD_FLAG_CMD_COW 0x02
> +#define SD_FLAG_CMD_CACHE 0x04
>
> #define SD_RES_SUCCESS 0x00 /* Success */
> #define SD_RES_UNKNOWN 0x01 /* Unknown error */
> @@ -179,6 +181,8 @@ typedef struct SheepdogInode {
> uint32_t data_vdi_id[MAX_DATA_OBJS];
> } SheepdogInode;
>
> +static int cache_enabled;
Why it is a global property instead of per-device
(in BDRVSheepdogState) property?
> @@ -1011,6 +1024,10 @@ static int sd_open(BlockDriverState *bs, const char *filename, int flags)
> QLIST_INIT(&s->outstanding_aio_head);
> s->fd = -1;
>
> + if (flags & BDRV_O_CACHE_WB) {
> + cache_enabled = 1;
> + }
You test per-device flag here, and set a global variable, why?
> +static int coroutine_fn sd_co_flush_to_disk(BlockDriverState *bs)
> +{
> + BDRVSheepdogState *s = bs->opaque;
> + SheepdogObjReq hdr = { 0 };
> + SheepdogObjRsp *rsp = (SheepdogObjRsp *)&hdr;
> + SheepdogInode *inode = &s->inode;
> + int fd, ret;
> + unsigned int wlen = 0, rlen = 0;
> +
> + fd = connect_to_sdog(s->addr, s->port);
> + if (fd < 0) {
> + return -1;
> + }
Do you really need _another_ connection here?
How about resolving server names, handling
connection timeouts (in case the server can't
accept new connection for some reason) and
other surrounding things?
Thanks,
/mjt
next prev parent reply other threads:[~2012-04-02 20:01 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-02 17:35 [Qemu-devel] [PATCH] sheepdog: implement SD_OP_FLUSH_VDI operation Liu Yuan
2012-04-02 20:01 ` Michael Tokarev [this message]
2012-04-03 5:14 ` Liu Yuan
2012-04-03 5:15 ` [Qemu-devel] [PATCH v2] " Liu Yuan
2012-04-03 7:23 ` Stefan Hajnoczi
2012-04-03 8:35 ` [Qemu-devel] [PATCH v3] " Liu Yuan
2012-04-03 9:12 ` Kevin Wolf
2012-04-03 10:04 ` [Qemu-devel] RE. [PATCH] sheepdog: fix send req helpers Liu Yuan
2012-04-03 11:13 ` MORITA Kazutaka
2012-04-03 11:34 ` Kevin Wolf
2012-04-03 9:52 ` [Qemu-devel] [PATCH v3] sheepdog: implement SD_OP_FLUSH_VDI operation MORITA Kazutaka
2012-04-03 9:58 ` [Qemu-devel] [PATCH v4] " Liu Yuan
2012-04-03 10:08 ` [Qemu-devel] [PATCH v4 UPDATE] " Liu Yuan
2012-04-03 10:32 ` MORITA Kazutaka
2012-04-03 10:30 ` Kevin Wolf
2012-04-03 20:03 ` [Qemu-devel] [PATCH v5] " Liu Yuan
2012-04-04 8:53 ` Kevin Wolf
2012-04-04 8:58 ` Liu Yuan
2012-04-04 9:20 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F7A05A2.4010301@msgid.tls.msk.ru \
--to=mjt@tls.msk.ru \
--cc=kwolf@redhat.com \
--cc=morita.kazutaka@lab.ntt.co.jp \
--cc=namei.unix@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.