All of lore.kernel.org
 help / color / mirror / Atom feed
From: Max Reitz <mreitz@redhat.com>
To: Fabiano Rosas <farosas@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Cc: qemu-block@nongnu.org, kwolf@redhat.com
Subject: Re: [Qemu-devel] [PATCH 5/5] include/block/block_int: Document protocol related functions
Date: Mon, 12 Mar 2018 14:50:50 +0100	[thread overview]
Message-ID: <85241da1-47d9-4fee-62d6-e8c6a6c58944@redhat.com> (raw)
In-Reply-To: <20180309182202.31206-6-farosas@linux.vnet.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 2265 bytes --]

On 2018-03-09 19:22, Fabiano Rosas wrote:
> Clarify that for protocols the brdv_file_open function is used instead
> of bdrv_open and that protocol_name is expected to be set.
> 
> Signed-off-by: Fabiano Rosas <farosas@linux.vnet.ibm.com>
> ---
>  include/block/block_int.h | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/include/block/block_int.h b/include/block/block_int.h
> index 64a5700f2b..d5e864c2dc 100644
> --- a/include/block/block_int.h
> +++ b/include/block/block_int.h
> @@ -126,6 +126,8 @@ struct BlockDriver {
>  
>      int (*bdrv_open)(BlockDriverState *bs, QDict *options, int flags,
>                       Error **errp);
> +
> +    /* Protocol drivers should implement this instead of bdrv_open */
>      int (*bdrv_file_open)(BlockDriverState *bs, QDict *options, int flags,
>                            Error **errp);
>      void (*bdrv_close)(BlockDriverState *bs);
> @@ -247,6 +249,10 @@ struct BlockDriver {
>       */
>      int coroutine_fn (*bdrv_co_flush_to_os)(BlockDriverState *bs);
>  
> +    /*
> +     * Drivers that set this field should also provide a
> +     * bdrv_file_open implementation

Well...  In a sense.

Drivers that implement this should be expected to be given only a
filename and no other options.  Therefore, they should generally
implement .bdrv_parse_filename() so they can extract options from it
(exception: gluster, which parses the whole filename in its
.bdrv_file_open() implementation).

(Or maybe they can just accept a URL and don't need to extract options
from it, like curl or file.)

So the stress lies on "Drivers setting this field must be able to work
with just a plain filename with this prefix, and no other options."
(Note that all of the drivers you removed this field from in this series
violated this.  They expect some other options and cannot work without.)

A driver doesn't need to be a protocol driver for this, and technically
a protocol driver doesn't need to set this.  Maybe we should rename it
to "filename_prefix"...?

Max

> +     */
>      const char *protocol_name;
>      int (*bdrv_truncate)(BlockDriverState *bs, int64_t offset,
>                           PreallocMode prealloc, Error **errp);
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 512 bytes --]

  reply	other threads:[~2018-03-12 13:51 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-09 18:21 [Qemu-devel] [PATCH 0/5] block: Ensure non-protocol drivers can only be selected explicitly Fabiano Rosas
2018-03-09 18:21 ` [Qemu-devel] [PATCH 1/5] block/replication: Remove protocol_name field Fabiano Rosas
2018-03-12 13:41   ` Max Reitz
2018-03-09 18:21 ` [Qemu-devel] [PATCH 2/5] block/quorum: Remove protocol-related fields Fabiano Rosas
2018-03-12 13:44   ` Max Reitz
2018-03-09 18:21 ` [Qemu-devel] [PATCH 3/5] block/throttle: " Fabiano Rosas
2018-03-12 13:44   ` Max Reitz
2018-03-09 18:22 ` [Qemu-devel] [PATCH 4/5] block/blkreplay: " Fabiano Rosas
2018-03-12  8:05   ` Pavel Dovgalyuk
2018-03-12 13:45   ` Max Reitz
2018-03-09 18:22 ` [Qemu-devel] [PATCH 5/5] include/block/block_int: Document protocol related functions Fabiano Rosas
2018-03-12 13:50   ` Max Reitz [this message]
2018-03-12 22:26     ` Fabiano Rosas

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=85241da1-47d9-4fee-62d6-e8c6a6c58944@redhat.com \
    --to=mreitz@redhat.com \
    --cc=farosas@linux.vnet.ibm.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --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.