public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Jens Axboe <jaxboe@fusionio.com>, Takuma Umeya <tumeya@redhat.com>
Cc: "virtualization\@lists.linux-foundation.org" 
	<virtualization@lists.linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	john cooper <john.cooper@redhat.com>, Tejun Heo <tj@kernel.org>,
	"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] virtio_blk: decrement index when blockdevice is removed
Date: Wed, 06 Apr 2011 11:02:08 +0930	[thread overview]
Message-ID: <87hbacw4fb.fsf@rustcorp.com.au> (raw)
In-Reply-To: <4D9AA3BC.6030907@fusionio.com>

On Tue, 05 Apr 2011 07:08:12 +0200, Jens Axboe <jaxboe@fusionio.com> wrote:
> On 2011-04-05 06:49, Takuma Umeya wrote:
> > When virtio block device is removed, index does not get decremented. When 
> > another virtio disk is attached it uses the next device letter to the 
> > one that is suppose to be available. 
> > 
> > Signed-off-by: Takuma Umeya <tumeya@redhat.com>
> > 
> > diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> > index 6ecf89c..730e7af 100644
> > --- a/drivers/block/virtio_blk.c
> > +++ b/drivers/block/virtio_blk.c
> > @@ -489,6 +489,7 @@ static void __devexit virtblk_remove(struct virtio_device *vdev)
> >         mempool_destroy(vblk->pool);
> >         vdev->config->del_vqs(vdev);
> >         kfree(vblk);
> > +       index--;
> >  }
> >  
> >  static const struct virtio_device_id id_table[] = {
> 
> What happens when you delete a device that isn't the last one?

Obviously we should do something cleverer for assigning drives.

It might be a cute if genhd gave us a function to get the next free
index for a given major number, and format it for us, like so:

      /* Return the next available minor for a given @major, at least
       * @spacing after the previous and, and append appropriate letters
       * to @name if it's not NULL.  -ve errno on fail (-ENOSPC?). */
      int disk_next_minor(int major, unsigned spacing, char *name);

A trivial optimization would be to remember the last major and max minor
(resetting that if any disks are removed).

This could clean up other code, too.

Cheers,
Rusty.

  reply	other threads:[~2011-04-06  2:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1099995365.641718.1301903899721.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com>
2011-04-05  4:49 ` [PATCH] virtio_blk: decrement index when blockdevice is removed Takuma Umeya
2011-04-05  5:08   ` Jens Axboe
2011-04-06  1:32     ` Rusty Russell [this message]
2011-04-06  3:05       ` Jens Axboe
2011-04-06 19:17   ` Ryan Harper

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=87hbacw4fb.fsf@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=hch@lst.de \
    --cc=jaxboe@fusionio.com \
    --cc=john.cooper@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tj@kernel.org \
    --cc=tumeya@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox