From: Max Reitz <mreitz@redhat.com>
To: Wen Congyang <wency@cn.fujitsu.com>,
qemu devel <qemu-devel@nongnu.org>, Kevin Wolf <kwolf@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>,
Jiang Yunhong <yunhong.jiang@intel.com>,
Dong Eddie <eddie.dong@intel.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Gonglei <arei.gonglei@huawei.com>,
Yang Hongyang <yanghy@cn.fujitsu.com>,
zhanghailiang <zhang.zhanghailiang@huawei.com>
Subject: Re: [Qemu-devel] [RFC PATCH 03/14] quorum: ignore 0-length child
Date: Wed, 18 Mar 2015 08:57:12 -0400 [thread overview]
Message-ID: <55097628.9050507@redhat.com> (raw)
In-Reply-To: <55090D42.6000502@cn.fujitsu.com>
On 2015-03-18 at 01:29, Wen Congyang wrote:
> On 02/24/2015 04:43 AM, Max Reitz wrote:
>> On 2015-02-11 at 22:07, Wen Congyang wrote:
>>> We connect to NBD server when starting block replication, so
>>> the length is 0 before starting block replication.
>>>
>>> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
>>> Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
>>> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
>>> ---
>>> block/quorum.c | 5 +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/block/quorum.c b/block/quorum.c
>>> index 5ed1ff8..e6aff5f 100644
>>> --- a/block/quorum.c
>>> +++ b/block/quorum.c
>>> @@ -734,6 +734,11 @@ static int64_t quorum_getlength(BlockDriverState *bs)
>>> if (value < 0) {
>>> return value;
>>> }
>>> +
>>> + if (!value) {
>>> + continue;
>>> + }
>>> +
>>> if (value != result) {
>>> return -EIO;
>>> }
>> Hm, what do you think about some specific error value returned by your delayed NBD implementation? Like -ENOTCONN or something like that? Then we'd be able to discern a real 0-length block device from a not-yet-connected NBD server.
> In my newest test, it cannot return -ENOTCONN, otherwise bdrv_open() will fail when we open the child.
> Here is the backtrace:
> (gdb) bt
> #0 bdrv_open_common (bs=0x5555563b2230, file=0x0, options=0x5555563b55a0, flags=57410, drv=0x555555e90c00, errp=0x7fffffffd460) at block.c:1070
> #1 0x000055555595ea72 in bdrv_open (pbs=0x7fffffffd5f8, filename=0x0, reference=0x0, options=0x5555563b55a0, flags=57410, drv=0x555555e90c00, errp=0x7fffffffd5e0) at block.c:1677
> #2 0x000055555595e3a9 in bdrv_open_image (pbs=0x7fffffffd5f8, filename=0x0, options=0x5555563a6730, bdref_key=0x555555a86b4c "file", flags=57410, allow_none=true, errp=0x7fffffffd5e0) at block.c:1481
> #3 0x000055555595e9ae in bdrv_open (pbs=0x555556388008, filename=0x0, reference=0x0, options=0x5555563a6730, flags=8258, drv=0x555555e8b800, errp=0x7fffffffd6b8) at block.c:1655
> #4 0x00005555559b0058 in quorum_open (bs=0x55555639bd90, options=0x55555639f100, flags=8258, errp=0x7fffffffd758) at block/quorum.c:1000
> #5 0x000055555595d0b8 in bdrv_open_common (bs=0x55555639bd90, file=0x0, options=0x55555639f100, flags=8258, drv=0x555555e8e5c0, errp=0x7fffffffd840) at block.c:1045
> #6 0x000055555595ea72 in bdrv_open (pbs=0x55555639bd50, filename=0x0, reference=0x0, options=0x55555639f100, flags=8258, drv=0x555555e8e5c0, errp=0x7fffffffdb70) at block.c:1677
> #7 0x00005555559b3bd3 in blk_new_open (name=0x55555639bc60 "virtio0", filename=0x0, reference=0x0, options=0x55555639a420, flags=66, errp=0x7fffffffdb70) at block/block-backend.c:129
> #8 0x0000555555754f78 in blockdev_init (file=0x0, bs_opts=0x55555639a420, errp=0x7fffffffdb70) at blockdev.c:536
> #9 0x0000555555755d90 in drive_new (all_opts=0x5555563777e0, block_default_type=IF_IDE) at blockdev.c:971
> #10 0x000055555576b1f0 in drive_init_func (opts=0x5555563777e0, opaque=0x555556372b48) at vl.c:1104
> #11 0x0000555555a1b019 in qemu_opts_foreach (list=0x555555e44060, func=0x55555576b1ba <drive_init_func>, opaque=0x555556372b48, abort_on_failure=1) at util/qemu-option.c:1059
> #12 0x00005555557743dd in main (argc=25, argv=0x7fffffffe0c8, envp=0x7fffffffe198) at vl.c:4191
>
> refresh_total_sectors() will fail if we return -ENOTCONN.
Okay, then 0 will be fine, too.
Max
next prev parent reply other threads:[~2015-03-18 12:57 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-12 3:07 [Qemu-devel] [RFC PATCH 00/14] Block replication for continuous checkpoints Wen Congyang
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 01/14] docs: block replication's description Wen Congyang
2015-02-12 7:21 ` Fam Zheng
2015-02-12 7:40 ` Wen Congyang
2015-02-12 8:44 ` Fam Zheng
2015-02-12 9:33 ` Wen Congyang
2015-02-12 9:44 ` Fam Zheng
2015-02-12 10:11 ` Wen Congyang
2015-02-12 10:26 ` famz
2015-02-13 5:09 ` Wen Congyang
2015-02-13 7:01 ` Fam Zheng
2015-02-13 20:29 ` John Snow
2015-03-03 7:53 ` Wen Congyang
2015-03-03 7:59 ` Fam Zheng
2015-03-03 12:12 ` Wen Congyang
2015-03-11 6:44 ` Wen Congyang
2015-03-11 6:49 ` Fam Zheng
2015-03-11 7:01 ` Wen Congyang
2015-03-11 7:04 ` Fam Zheng
2015-03-11 7:12 ` Wen Congyang
2015-03-13 9:01 ` Wen Congyang
2015-03-13 9:05 ` Fam Zheng
2015-03-16 6:19 ` Wen Congyang
2015-03-25 12:41 ` Paolo Bonzini
2015-02-12 9:36 ` Hongyang Yang
2015-02-12 9:46 ` Fam Zheng
2015-02-24 7:50 ` Wen Congyang
2015-02-25 2:46 ` Fam Zheng
2015-02-25 8:36 ` Wen Congyang
2015-02-25 8:58 ` Fam Zheng
2015-02-25 9:58 ` Wen Congyang
2015-02-26 6:38 ` Wen Congyang
2015-02-26 8:44 ` Fam Zheng
2015-02-26 9:07 ` Wen Congyang
2015-02-26 10:02 ` Fam Zheng
2015-02-27 2:27 ` Wen Congyang
2015-02-27 2:32 ` Fam Zheng
2015-02-25 8:11 ` Wen Congyang
2015-02-25 8:18 ` Fam Zheng
2015-02-25 9:10 ` Wen Congyang
2015-02-25 9:45 ` Fam Zheng
2015-03-04 16:35 ` Dr. David Alan Gilbert
2015-03-05 1:03 ` Wen Congyang
2015-03-05 19:04 ` Dr. David Alan Gilbert
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 02/14] quorom: add a new read pattern Wen Congyang
2015-02-12 6:42 ` Gonglei
2015-02-23 20:36 ` Max Reitz
2015-02-23 21:56 ` Eric Blake
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 03/14] quorum: ignore 0-length child Wen Congyang
2015-02-23 20:43 ` Max Reitz
2015-02-24 2:33 ` Wen Congyang
2015-03-18 5:29 ` Wen Congyang
2015-03-18 12:57 ` Max Reitz [this message]
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 04/14] Add new block driver interfaces to control disk replication Wen Congyang
2015-02-23 20:57 ` Max Reitz
2015-02-23 21:58 ` Eric Blake
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 05/14] quorom: implement block driver interfaces for block replication Wen Congyang
2015-02-23 21:22 ` Max Reitz
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 06/14] NBD client: connect to nbd server later Wen Congyang
2015-02-23 21:31 ` Max Reitz
2015-02-25 2:23 ` Wen Congyang
2015-02-25 14:22 ` Max Reitz
2015-02-26 14:07 ` Paolo Bonzini
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 07/14] NBD client: implement block driver interfaces for block replication Wen Congyang
2015-02-23 21:41 ` Max Reitz
2015-02-26 14:08 ` Paolo Bonzini
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 08/14] block: add a new API to create a hidden BlockBackend Wen Congyang
2015-02-23 21:48 ` Max Reitz
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 09/14] block: give backing image its own BlockBackend Wen Congyang
2015-02-23 21:53 ` Max Reitz
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 10/14] allow the backing image access the origin BlockDriverState Wen Congyang
2015-02-23 22:01 ` Max Reitz
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 11/14] allow writing to the backing file Wen Congyang
2015-02-23 22:03 ` Max Reitz
2015-02-26 14:15 ` Paolo Bonzini
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 12/14] Add disk buffer for block replication Wen Congyang
2015-02-23 22:27 ` Max Reitz
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 13/14] COW: move cow interfaces to a seperate file Wen Congyang
2015-02-12 3:07 ` [Qemu-devel] [RFC PATCH 14/14] COLO: implement a new block driver Wen Congyang
2015-02-23 22:35 ` Max Reitz
2015-02-18 16:26 ` [Qemu-devel] [RFC PATCH 00/14] Block replication for continuous checkpoints Paolo Bonzini
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=55097628.9050507@redhat.com \
--to=mreitz@redhat.com \
--cc=arei.gonglei@huawei.com \
--cc=dgilbert@redhat.com \
--cc=eddie.dong@intel.com \
--cc=kwolf@redhat.com \
--cc=laijs@cn.fujitsu.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=wency@cn.fujitsu.com \
--cc=yanghy@cn.fujitsu.com \
--cc=yunhong.jiang@intel.com \
--cc=zhang.zhanghailiang@huawei.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).