From: Kevin Wolf <kwolf@redhat.com>
To: "Richard W.M. Jones" <rjones@redhat.com>
Cc: josh.durgin@dreamhost.com, tailai.ly@taobao.com,
Peter Lieven <pl@kamp.de>,
qemu-devel@nongnu.org, stefanha@redhat.com,
bharata@linux.vnet.ibm.com, morita.kazutaka@lab.ntt.co.jp
Subject: Re: [Qemu-devel] block: Review of .has_zero_init use
Date: Tue, 25 Jun 2013 14:27:05 +0200 [thread overview]
Message-ID: <20130625122704.GG3539@dhcp-200-207.str.redhat.com> (raw)
In-Reply-To: <20130625120533.GP1882@redhat.com>
Am 25.06.2013 um 14:05 hat Richard W.M. Jones geschrieben:
> On Tue, Jun 25, 2013 at 01:39:11PM +0200, Kevin Wolf wrote:
> > * ssh - currently has_zero_init = 1 (is this correct?)
> [...]
> > It might be possible that the correct value depends on the backend on
> > the server side for some protocols - for example, I think for SSH it
> > depends on whether you access a regular file or a block device on the
> > other host (if accessing a block device is even possible).
>
> This seems to depend on the behaviour of O_TRUNC on block devices.
> The man page says it's unspecified, but I tested it on Linux, and
> Linux ignores it (for logical volumes anyway).
>
> When the ssh driver is asked to do bdrv_create it does on the
> remote end:
>
> - open (filename, O_RDWR|O_CREAT|O_TRUNC, 0644) [1]
> - lseek (fd, size-1, SEEK_SET) [2]
> - write (fd, &'\0', 1)
>
> In other words for regular files, it creates a sparse file. For block
> devices, I tested the sequence above, and it doesn't fail.
>
> So .. I guess that has_zero_init = 0 would be correct?
Yes, that's my understanding.
> Unless we fstat the fd after opening it and return some conditional
> value from bdrv_has_zero_init eg if it's a block device. Is that
> possible?
.bdrv_has_zero_init is a callback that gets a specific BlockDriverState,
so it's possible to do some checks in there. If you can get the
necessary information using SSH, doing it dynamically is certainly an
option.
Kevin
next prev parent reply other threads:[~2013-06-25 12:33 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-25 11:39 [Qemu-devel] block: Review of .has_zero_init use Kevin Wolf
2013-06-25 12:05 ` Richard W.M. Jones
2013-06-25 12:27 ` Kevin Wolf [this message]
2013-06-25 13:11 ` MORITA Kazutaka
2013-06-25 13:20 ` Kevin Wolf
2013-06-25 13:42 ` MORITA Kazutaka
2013-06-25 13:45 ` Kevin Wolf
2013-06-25 15:06 ` Josh Durgin
2013-06-26 3:14 ` Bharata B Rao
2013-06-26 5:59 ` Peter Lieven
2013-06-26 6:46 ` Bharata B Rao
2013-06-26 7:36 ` Kevin Wolf
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=20130625122704.GG3539@dhcp-200-207.str.redhat.com \
--to=kwolf@redhat.com \
--cc=bharata@linux.vnet.ibm.com \
--cc=josh.durgin@dreamhost.com \
--cc=morita.kazutaka@lab.ntt.co.jp \
--cc=pl@kamp.de \
--cc=qemu-devel@nongnu.org \
--cc=rjones@redhat.com \
--cc=stefanha@redhat.com \
--cc=tailai.ly@taobao.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).