All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Max Reitz <mreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>,
	qemu-block@nongnu.org
Cc: berto@igalia.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v4 11/11] nbd-server: Allow node name for nbd-server-add
Date: Fri, 15 Jul 2016 09:18:52 -0600	[thread overview]
Message-ID: <5788FEDC.9090501@redhat.com> (raw)
In-Reply-To: <f11a2371-3eb6-159b-630b-63580d5ea381@redhat.com>

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

On 07/15/2016 07:36 AM, Max Reitz wrote:
> On 14.07.2016 23:36, Eric Blake wrote:
>> On 07/14/2016 07:28 AM, Kevin Wolf wrote:
>>> There is no reason why an NBD server couldn't be started for any node,
>>> even if it's not on the top level. This converts nbd-server-add to
>>> accept a node-name.
>>>

>> Do we want to do any sanity checking that writing should only be
>> permitted on a root, and that when using a node name that is not a root
>> that writable must be false so as not to negatively change the BDS out
>> of under the feet of the other root?  Do op-blockers already cover that?
> 
> Well, one could argue that it's possible to create an NBD server on a
> non-root node today anyway, since creating BBs is not restricted to root
> nodes:
> 
> blockdev-add(id=foo, other arguments...)
> blockdev-add(id=bar, backing=foo, other arguments...)
> 
> And then you can create an NBD server on bar. I agree that this is not
> how it should be, though. However, I think that the fact that you need
> to specify a BB name for now deters people from doing stuff like that.
> If you can specify a node name, people will think it's completely fine
> to do so.

Creating a server on bar doesn't change the contents of foo, so I see
that as safe (foo can still be in use by other chains, and the server on
bar won't invalidate those chains).

> 
> Also note that only allowing NBD servers to be created on a root node
> doesn't really help you:
> 
> blockdev-add(node-name=foo, ...)
> nbd-server-add(device=foo)
> blockdev-add(id=bar, backing=foo, ...)

But THAT is indeed unsafe, if the server allows writes, because now the
contents of bar are at risk of being silently changed by any edits made
to foo.

So the real restriction we want is that if foo is owned by a read-write
BB (the NBD server in this case), then creating another BDS bar that
uses foo as a backing is undesirable.

> 
> So, yeah, I think we just need the new op-blockers for this, I don't
> think the current op blockers cover this.

I'm not sure either, which is why we're discussing it on list to make
sure we think about the restrictions and their implications.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


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

  reply	other threads:[~2016-07-15 15:19 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-14 13:28 [Qemu-devel] [PATCH v4 00/11] block: Accept node-name in all node level QMP commands Kevin Wolf
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 01/11] block: Accept node-name for block-stream Kevin Wolf
2016-07-14 14:16   ` Eric Blake
2016-08-01 13:23   ` Alberto Garcia
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 02/11] block: Accept node-name for block-commit Kevin Wolf
2016-07-14 15:14   ` Eric Blake
2016-07-18 13:38   ` Max Reitz
2016-07-18 16:13     ` Eric Blake
2016-07-18 16:16       ` Max Reitz
2016-08-01 13:35   ` Alberto Garcia
2016-08-02 16:22     ` Kevin Wolf
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 03/11] block: Accept node-name for blockdev-backup Kevin Wolf
2016-07-14 16:14   ` Eric Blake
2016-07-18 13:59   ` Max Reitz
2016-08-02 16:58     ` Kevin Wolf
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 04/11] block: Accept node-name for blockdev-mirror Kevin Wolf
2016-07-14 20:24   ` Eric Blake
2016-08-01 13:42   ` Alberto Garcia
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 05/11] block: Accept node-name for blockdev-snapshot-delete-internal-sync Kevin Wolf
2016-07-14 20:32   ` Eric Blake
2016-08-01 13:43   ` Alberto Garcia
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 06/11] block: Accept node-name for blockdev-snapshot-internal-sync Kevin Wolf
2016-07-14 20:40   ` Eric Blake
2016-08-01 13:54   ` Alberto Garcia
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 07/11] block: Accept node-name for change-backing-file Kevin Wolf
2016-07-14 20:44   ` Eric Blake
2016-07-18 14:15     ` Max Reitz
2016-08-01 14:04   ` Alberto Garcia
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 08/11] block: Accept node-name for drive-backup Kevin Wolf
2016-07-14 20:48   ` Eric Blake
2016-07-18 14:24   ` Max Reitz
2016-08-01 14:02   ` Alberto Garcia
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 09/11] block: Accept node-name for drive-mirror Kevin Wolf
2016-07-14 20:54   ` Eric Blake
2016-07-18 14:30   ` Max Reitz
2016-08-02 16:19     ` Kevin Wolf
2016-08-03 11:16       ` Max Reitz
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 10/11] nbd-server: Use a separate BlockBackend Kevin Wolf
2016-07-14 21:30   ` Eric Blake
2016-07-14 13:28 ` [Qemu-devel] [PATCH v4 11/11] nbd-server: Allow node name for nbd-server-add Kevin Wolf
2016-07-14 21:36   ` Eric Blake
2016-07-15 13:36     ` Max Reitz
2016-07-15 15:18       ` Eric Blake [this message]
2016-07-15 15:22         ` Max Reitz

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=5788FEDC.9090501@redhat.com \
    --to=eblake@redhat.com \
    --cc=berto@igalia.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@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.