From nobody Tue Feb 10 05:41:41 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149200614823242.05021348592061; Wed, 12 Apr 2017 07:09:08 -0700 (PDT) Received: from localhost ([::1]:44553 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyIxG-0004zf-VH for importer@patchew.org; Wed, 12 Apr 2017 10:09:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37145) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyIvl-0003vt-8t for qemu-devel@nongnu.org; Wed, 12 Apr 2017 10:07:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyIvg-0001ks-Tp for qemu-devel@nongnu.org; Wed, 12 Apr 2017 10:07:33 -0400 Received: from szxga03-in.huawei.com ([45.249.212.189]:3372 helo=dggrg03-dlp.huawei.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1cyIvg-0001jv-Ay; Wed, 12 Apr 2017 10:07:28 -0400 Received: from 172.30.72.55 (EHLO DGGEML403-HUB.china.huawei.com) ([172.30.72.55]) by dggrg03-dlp.huawei.com (MOS 4.4.6-GA FastPath queued) with ESMTP id ALP11477; Wed, 12 Apr 2017 22:05:53 +0800 (CST) Received: from localhost (10.177.24.212) by DGGEML403-HUB.china.huawei.com (10.3.17.33) with Microsoft SMTP Server id 14.3.301.0; Wed, 12 Apr 2017 22:05:42 +0800 From: zhanghailiang To: , Date: Wed, 12 Apr 2017 22:05:21 +0800 Message-ID: <1492005921-15664-7-git-send-email-zhang.zhanghailiang@huawei.com> X-Mailer: git-send-email 2.7.2.windows.1 In-Reply-To: <1492005921-15664-1-git-send-email-zhang.zhanghailiang@huawei.com> References: <1492005921-15664-1-git-send-email-zhang.zhanghailiang@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.177.24.212] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020203.58EE3441.0355, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: c596af653b4a97285df48f808b2de751 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] [fuzzy] X-Received-From: 45.249.212.189 Subject: [Qemu-devel] [PATCH v4 6/6] nbd/replication: implement .bdrv_get_info() for nbd and replication driver X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, xiecl.fnst@cn.fujitsu.com, Wen Congyang , qemu-block@nongnu.org, zhangchen.fnst@cn.fujitsu.com, zhanghailiang Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Without this callback, there will be an error reports in the primary side: "qemu-system-x86_64: Couldn't determine the cluster size of the target imag= e, which has no backing file: Operation not supported Aborting, since this may create an unusable destination image" For nbd driver, it doesn't have cluster size, so here we return a fake value for it. This patch should be dropped if Eric's nbd patch be merged. https://lists.gnu.org/archive/html/qemu-block/2017-02/msg00825.html '[PATCH v4 7/8] nbd: Implement NBD_INFO_BLOCK_SIZE on server'. Cc: Eric Blake Signed-off-by: zhanghailiang Signed-off-by: Wen Congyang --- block/nbd.c | 12 ++++++++++++ block/replication.c | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/block/nbd.c b/block/nbd.c index 814ab26d..fceb14b 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -43,6 +43,8 @@ =20 #define EN_OPTSTR ":exportname=3D" =20 +#define NBD_FAKE_CLUSTER_SIZE 512 + typedef struct BDRVNBDState { NBDClientSession client; =20 @@ -561,6 +563,13 @@ static void nbd_refresh_filename(BlockDriverState *bs,= QDict *options) bs->full_open_options =3D opts; } =20 +static int nbd_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) +{ + bdi->cluster_size =3D NBD_FAKE_CLUSTER_SIZE; + + return 0; +} + static BlockDriver bdrv_nbd =3D { .format_name =3D "nbd", .protocol_name =3D "nbd", @@ -578,6 +587,7 @@ static BlockDriver bdrv_nbd =3D { .bdrv_detach_aio_context =3D nbd_detach_aio_context, .bdrv_attach_aio_context =3D nbd_attach_aio_context, .bdrv_refresh_filename =3D nbd_refresh_filename, + .bdrv_get_info =3D nbd_get_info, }; =20 static BlockDriver bdrv_nbd_tcp =3D { @@ -597,6 +607,7 @@ static BlockDriver bdrv_nbd_tcp =3D { .bdrv_detach_aio_context =3D nbd_detach_aio_context, .bdrv_attach_aio_context =3D nbd_attach_aio_context, .bdrv_refresh_filename =3D nbd_refresh_filename, + .bdrv_get_info =3D nbd_get_info, }; =20 static BlockDriver bdrv_nbd_unix =3D { @@ -616,6 +627,7 @@ static BlockDriver bdrv_nbd_unix =3D { .bdrv_detach_aio_context =3D nbd_detach_aio_context, .bdrv_attach_aio_context =3D nbd_attach_aio_context, .bdrv_refresh_filename =3D nbd_refresh_filename, + .bdrv_get_info =3D nbd_get_info, }; =20 static void bdrv_nbd_init(void) diff --git a/block/replication.c b/block/replication.c index fb604e5..7371caa 100644 --- a/block/replication.c +++ b/block/replication.c @@ -761,6 +761,11 @@ static void replication_stop(ReplicationState *rs, boo= l failover, Error **errp) aio_context_release(aio_context); } =20 +static int replication_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) +{ + return bdrv_get_info(bs->file->bs, bdi); +} + BlockDriver bdrv_replication =3D { .format_name =3D "replication", .protocol_name =3D "replication", @@ -774,6 +779,7 @@ BlockDriver bdrv_replication =3D { .bdrv_co_readv =3D replication_co_readv, .bdrv_co_writev =3D replication_co_writev, =20 + .bdrv_get_info =3D replication_get_info, .is_filter =3D true, .bdrv_recurse_is_first_non_filter =3D replication_recurse_is_first_non= _filter, =20 --=20 1.8.3.1