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.

Why are these operations needed when there is already a bs->drv == NULL
case which means the BDS is not ready for read/write?

Attachment: pgpItNrONYSje.pgp
Description: PGP signature

Reply via email to