All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: linux-kernel@vger.kernel.org, Jason Wang <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH] virtio_blk: fix incorrect message when disk is resized
Date: Fri, 4 Aug 2017 16:24:36 +0300	[thread overview]
Message-ID: <20170804162420-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20170804093754.GA9867@stefanha-x1.localdomain>

On Fri, Aug 04, 2017 at 10:37:54AM +0100, Stefan Hajnoczi wrote:
> On Wed, Jul 26, 2017 at 03:32:23PM +0100, Stefan Hajnoczi wrote:
> > The message printed on disk resize is incorrect.  The following is
> > printed when resizing to 2 GiB:
> > 
> >   $ truncate -s 1G test.img
> >   $ qemu -device virtio-blk-pci,logical_block_size=4096,...
> >   (qemu) block_resize drive1 2G
> > 
> >   virtio_blk virtio0: new size: 4194304 4096-byte logical blocks (17.2 GB/16.0 GiB)
> > 
> > The virtio_blk capacity config field is in 512-byte sector units
> > regardless of logical_block_size as per the VIRTIO specification.
> > Therefore the message should read:
> > 
> >   virtio_blk virtio0: new size: 524288 4096-byte logical blocks (2.15 GB/2.0 GiB)
> > 
> > Note that this only affects the printed message.  Thankfully the actual
> > block device has the correct size because the block layer expects
> > capacity in sectors.
> > 
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> >  drivers/block/virtio_blk.c | 16 ++++++++++------
> >  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> Ping?

Oops - I thought I sent it up. Will do.

> > diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> > index 4e02aa5fdac0..69a2d1748743 100644
> > --- a/drivers/block/virtio_blk.c
> > +++ b/drivers/block/virtio_blk.c
> > @@ -381,6 +381,7 @@ static void virtblk_config_changed_work(struct work_struct *work)
> >  	struct request_queue *q = vblk->disk->queue;
> >  	char cap_str_2[10], cap_str_10[10];
> >  	char *envp[] = { "RESIZE=1", NULL };
> > +	unsigned long long nblocks;
> >  	u64 capacity;
> >  
> >  	/* Host must always specify the capacity. */
> > @@ -393,16 +394,19 @@ static void virtblk_config_changed_work(struct work_struct *work)
> >  		capacity = (sector_t)-1;
> >  	}
> >  
> > -	string_get_size(capacity, queue_logical_block_size(q),
> > +	nblocks = DIV_ROUND_UP_ULL(capacity, queue_logical_block_size(q) >> 9);
> > +
> > +	string_get_size(nblocks, queue_logical_block_size(q),
> >  			STRING_UNITS_2, cap_str_2, sizeof(cap_str_2));
> > -	string_get_size(capacity, queue_logical_block_size(q),
> > +	string_get_size(nblocks, queue_logical_block_size(q),
> >  			STRING_UNITS_10, cap_str_10, sizeof(cap_str_10));
> >  
> >  	dev_notice(&vdev->dev,
> > -		  "new size: %llu %d-byte logical blocks (%s/%s)\n",
> > -		  (unsigned long long)capacity,
> > -		  queue_logical_block_size(q),
> > -		  cap_str_10, cap_str_2);
> > +		   "new size: %llu %d-byte logical blocks (%s/%s)\n",
> > +		   nblocks,
> > +		   queue_logical_block_size(q),
> > +		   cap_str_10,
> > +		   cap_str_2);
> >  
> >  	set_capacity(vblk->disk, capacity);
> >  	revalidate_disk(vblk->disk);
> > -- 
> > 2.13.3
> > 

  reply	other threads:[~2017-08-04 13:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-26 14:32 [PATCH] virtio_blk: fix incorrect message when disk is resized Stefan Hajnoczi
2017-07-26 14:32 ` Stefan Hajnoczi
2017-08-04  9:37 ` Stefan Hajnoczi
2017-08-04  9:37 ` Stefan Hajnoczi
2017-08-04 13:24   ` Michael S. Tsirkin [this message]
2017-08-04 13:24   ` Michael S. Tsirkin

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=20170804162420-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stefanha@redhat.com \
    --cc=virtualization@lists.linux-foundation.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.