Re: [PATCH] sheepdog: reject snapshot as a LUN to avoid deleting working VDI

FUJITA Tomonori <[email protected]> Thu, 13 Oct 2016 18:15:13 +0900 (JST)
Newsgroups org.kernel.vger.stgt
Message-ID <20161013.181513.1568838937885757326.fujita.tomonori@lab.ntt.co.jp>
On Thu, 13 Oct 2016 17:49:04 +0900
Takashi Menjo <[email protected]> wrote:

> This commit lets the sheepdog driver reject forms of filename below.
> This is to avoid unintended deletion of working VDI when a snapshot is
> given as a LUN.
> 
>  * unix:<path_of_unix_domain_socket>:<vdi>:<tag>
>  * unix:<path_of_unix_domain_socket>:<vdi>:<snapid>
>  * tcp:<host>:<port>:<vdi>:<tag>
>  * tcp:<host>:<port>:<vdi>:<snapid>
> 
> In the case that a snapshot is given as a LUN by any of them above, the
> sheepdog driver attempts to delete it then create a new writable VDI when
> some data is being written to it. The deletion request contains name and
> VDI ID of the snapshot. However, sheep daemon uses its name but ignores
> VDI ID and, what is worse, the request contains neither snapshot ID nor
> tag. So sheep daemon receiving the request interprets it as deletion of
> working VDI, not snapshot. If there is working VDI with the same name,
> it will be deleted unintentionally.
> 
> I decided not to fix the sheepdog driver to send snapshot ID or tag but
> to let it reject snapshot as a LUN because, even if I fix it, creating
> a new writable VDI will be failed when working VDI exists. If you want
> workaround, use "dog vdi clone" command to create a new writable VDI from
> snapshot then give the new VDI as a LUN.
> 
> Cc: Teruaki Ishizaki <[email protected]>
> Cc: Hitoshi Mitake <[email protected]>
> Signed-off-by: Takashi Menjo <[email protected]>
> Signed-off-by: FUJITA Tomonori <[email protected]>

Hmm, why my Signed-off-by is here?

Anyway, I'll wait for an ACK from one of the guys listed above.