All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <jaxboe@fusionio.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: Takuma Umeya <tumeya@redhat.com>,
	"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, 6 Apr 2011 05:05:48 +0200	[thread overview]
Message-ID: <4D9BD88C.3030807@fusionio.com> (raw)
In-Reply-To: <87hbacw4fb.fsf@rustcorp.com.au>

On 2011-04-06 03:32, Rusty Russell wrote:
> 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.

Something like idr would be a good fit for this. But yes, adding some
helpers for this might not hurt...

-- 
Jens Axboe

  parent reply	other threads:[~2011-04-06  3:05 UTC|newest]

Thread overview: 10+ 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-05  5:08   ` Jens Axboe
2011-04-06  1:32     ` Rusty Russell
2011-04-06  3:05       ` Jens Axboe
2011-04-06  3:05       ` Jens Axboe [this message]
2011-04-06  1:32     ` Rusty Russell
2011-04-06 19:17   ` Ryan Harper
2011-04-06 19:17   ` Ryan Harper
2011-04-05  4:49 ` Takuma Umeya

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=4D9BD88C.3030807@fusionio.com \
    --to=jaxboe@fusionio.com \
    --cc=hch@lst.de \
    --cc=john.cooper@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --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 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.