|
From: | Wen Congyang |
Subject: | Re: [Qemu-devel] [Qemu-block] [PATCH COLO-Block v6 07/16] Add new block driver interface to connect/disconnect the remote target |
Date: | Thu, 18 Jun 2015 22:36:39 +0800 |
User-agent: | Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
At 2015/6/18 20:55, Stefan Hajnoczi Wrote:
On Thu, Jun 18, 2015 at 04:49:12PM +0800, Wen Congyang wrote:+void bdrv_connect(BlockDriverState *bs, Error **errp) +{ + BlockDriver *drv = bs->drv; + + if (drv && drv->bdrv_connect) { + drv->bdrv_connect(bs, errp); + } else if (bs->file) { + bdrv_connect(bs->file, errp); + } else { + error_setg(errp, "this feature or command is not currently supported"); + } +} + +void bdrv_disconnect(BlockDriverState *bs) +{ + BlockDriver *drv = bs->drv; + + if (drv && drv->bdrv_disconnect) { + drv->bdrv_disconnect(bs); + } else if (bs->file) { + bdrv_disconnect(bs->file); + } +}Please add doc comments describing the semantics of these commands.
Where should it be documented? In the header file?
Why are these operations needed when there is already a bs->drv == NULL case which means the BDS is not ready for read/write?
The purpos is that: don't connect to nbd server when opening a nbd client. connect/disconnect
to nbd server when we need to do it.IIUC, if bs->drv is NULL, it means that the driver is ejected? Here, connect/disconnect means that connect/disconnect to remote target(The target may be in another host).
Thanks Wen Congyang
[Prev in Thread] | Current Thread | [Next in Thread] |