* Re: [PATCH] virtio_blk: add helper function to support mass of disks naming [not found] <4F72B5B3.6020602@cn.fujitsu.com> @ 2012-03-28 10:58 ` Michael S. Tsirkin 2012-03-29 4:40 ` Rusty Russell 2012-03-29 5:36 ` Ren Mingxin 0 siblings, 2 replies; 5+ messages in thread From: Michael S. Tsirkin @ 2012-03-28 10:58 UTC (permalink / raw) To: Ren Mingxin; +Cc: linux-scsi, kvm, LKML, virtualization, jens.axboe, Tejun Heo On Wed, Mar 28, 2012 at 02:54:43PM +0800, Ren Mingxin wrote: > Hi, > > The current virtblk's naming algorithm just supports 26^3 > disks. If there are mass of virtblks(exceeding 26^3), there > will be disks with the same name. > > According to "sd_format_disk_name()", I add function > "virtblk_name_format()" for virtblk to support mass of > disks. > > Signed-off-by: Ren Mingxin <renmx@cn.fujitsu.com> Nod. This is basically what 3e1a7ff8a0a7b948f2684930166954f9e8e776fe did. Except, maybe we should move this function into block core instead of duplicating it? Where would be a good place to put it? Jens, care to comment? > --- > virtio_blk.c | 37 +++++++++++++++++++++++++------------ > 1 file changed, 25 insertions(+), 12 deletions(-) > > diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c > index c4a60ba..07b8bf9 100644 > --- a/drivers/block/virtio_blk.c > +++ b/drivers/block/virtio_blk.c > @@ -374,6 +374,30 @@ static int init_vq(struct virtio_blk *vblk) > return err; > } > > +static int virtblk_name_format(char *prefix, int index, char *buf, > int buflen) > +{ > + const int base = 'z' - 'a' + 1; > + char *begin = buf + strlen(prefix); > + char *begin = buf + strlen(prefix); > + char *end = buf + buflen; > + char *p; > + int unit; > + > + p = end - 1; > + *p = '\0'; > + unit = base; > + do { > + if (p == begin) > + return -EINVAL; > + *--p = 'a' + (index % unit); > + index = (index / unit) - 1; > + } while (index >= 0); > + > + memmove(begin, p, end - p); > + memcpy(buf, prefix, strlen(prefix)); > + > + return 0; > +} > + > static int __devinit virtblk_probe(struct virtio_device *vdev) > { > struct virtio_blk *vblk; > @@ -442,18 +466,7 @@ static int __devinit virtblk_probe(struct > virtio_device *vdev) > > q->queuedata = vblk; > > - if (index < 26) { > - sprintf(vblk->disk->disk_name, "vd%c", 'a' + index % 26); > - } else if (index < (26 + 1) * 26) { > - sprintf(vblk->disk->disk_name, "vd%c%c", > - 'a' + index / 26 - 1, 'a' + index % 26); > - } else { > - const unsigned int m1 = (index / 26 - 1) / 26 - 1; > - const unsigned int m2 = (index / 26 - 1) % 26; > - const unsigned int m3 = index % 26; > - sprintf(vblk->disk->disk_name, "vd%c%c%c", > - 'a' + m1, 'a' + m2, 'a' + m3); > - } > + virtblk_name_format("vd", index, vblk->disk->disk_name, > DISK_NAME_LEN); > > vblk->disk->major = major; > vblk->disk->first_minor = index_to_minor(index); ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] virtio_blk: add helper function to support mass of disks naming 2012-03-28 10:58 ` [PATCH] virtio_blk: add helper function to support mass of disks naming Michael S. Tsirkin @ 2012-03-29 4:40 ` Rusty Russell 2012-03-29 5:36 ` Ren Mingxin 1 sibling, 0 replies; 5+ messages in thread From: Rusty Russell @ 2012-03-29 4:40 UTC (permalink / raw) To: Michael S. Tsirkin, Ren Mingxin Cc: kvm, linux-scsi, LKML, virtualization, jens.axboe, Tejun Heo On Wed, 28 Mar 2012 12:58:21 +0200, "Michael S. Tsirkin" <mst@redhat.com> wrote: > On Wed, Mar 28, 2012 at 02:54:43PM +0800, Ren Mingxin wrote: > > Hi, > > > > The current virtblk's naming algorithm just supports 26^3 > > disks. If there are mass of virtblks(exceeding 26^3), there > > will be disks with the same name. > > > > According to "sd_format_disk_name()", I add function > > "virtblk_name_format()" for virtblk to support mass of > > disks. > > > > Signed-off-by: Ren Mingxin <renmx@cn.fujitsu.com> > > Nod. This is basically what 3e1a7ff8a0a7b948f2684930166954f9e8e776fe > did. Except, maybe we should move this function into block core > instead of duplicating it? Where would be a good place to put it? > Jens, care to comment? Indeed. Cheers, Rusty. -- How could I marry someone with more hair than me? http://baldalex.org ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] virtio_blk: add helper function to support mass of disks naming 2012-03-28 10:58 ` [PATCH] virtio_blk: add helper function to support mass of disks naming Michael S. Tsirkin 2012-03-29 4:40 ` Rusty Russell @ 2012-03-29 5:36 ` Ren Mingxin 2012-03-29 12:03 ` Jens Axboe 1 sibling, 1 reply; 5+ messages in thread From: Ren Mingxin @ 2012-03-29 5:36 UTC (permalink / raw) To: Michael S. Tsirkin, jens.axboe Cc: Rusty Russell, LKML, Tejun Heo, kvm, virtualization, linux-scsi On 03/28/2012 06:58 PM, Michael S. Tsirkin wrote: > On Wed, Mar 28, 2012 at 02:54:43PM +0800, Ren Mingxin wrote: >> Hi, >> >> The current virtblk's naming algorithm just supports 26^3 >> disks. If there are mass of virtblks(exceeding 26^3), there >> will be disks with the same name. >> >> According to "sd_format_disk_name()", I add function >> "virtblk_name_format()" for virtblk to support mass of >> disks. >> >> Signed-off-by: Ren Mingxin<renmx@cn.fujitsu.com> > Nod. This is basically what 3e1a7ff8a0a7b948f2684930166954f9e8e776fe > did. Except, maybe we should move this function into block core > instead of duplicating it? Where would be a good place to put it? Yes, this was also what I thought. How about placing the "sd_format_disk_name()" as "disk_name_format()" into "block/genhd.c" ("include/linux/genhd.h")? Thanks. Ren ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] virtio_blk: add helper function to support mass of disks naming 2012-03-29 5:36 ` Ren Mingxin @ 2012-03-29 12:03 ` Jens Axboe 2012-03-29 12:46 ` Michael S. Tsirkin 0 siblings, 1 reply; 5+ messages in thread From: Jens Axboe @ 2012-03-29 12:03 UTC (permalink / raw) To: Ren Mingxin Cc: Michael S. Tsirkin, Rusty Russell, LKML, Tejun Heo, kvm, virtualization, linux-scsi On 03/29/2012 07:36 AM, Ren Mingxin wrote: > On 03/28/2012 06:58 PM, Michael S. Tsirkin wrote: >> On Wed, Mar 28, 2012 at 02:54:43PM +0800, Ren Mingxin wrote: >>> Hi, >>> >>> The current virtblk's naming algorithm just supports 26^3 >>> disks. If there are mass of virtblks(exceeding 26^3), there >>> will be disks with the same name. >>> >>> According to "sd_format_disk_name()", I add function >>> "virtblk_name_format()" for virtblk to support mass of >>> disks. >>> >>> Signed-off-by: Ren Mingxin<renmx@cn.fujitsu.com> >> Nod. This is basically what 3e1a7ff8a0a7b948f2684930166954f9e8e776fe >> did. Except, maybe we should move this function into block core >> instead of duplicating it? Where would be a good place to put it? > > Yes, this was also what I thought. > > How about placing the "sd_format_disk_name()" > as "disk_name_format()" into "block/genhd.c" > ("include/linux/genhd.h")? Yes, that sounds like the appropriate solution (and name, and where to put it). -- Jens Axboe ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] virtio_blk: add helper function to support mass of disks naming 2012-03-29 12:03 ` Jens Axboe @ 2012-03-29 12:46 ` Michael S. Tsirkin 0 siblings, 0 replies; 5+ messages in thread From: Michael S. Tsirkin @ 2012-03-29 12:46 UTC (permalink / raw) To: Jens Axboe Cc: Ren Mingxin, Rusty Russell, LKML, Tejun Heo, kvm, virtualization, linux-scsi On Thu, Mar 29, 2012 at 02:03:55PM +0200, Jens Axboe wrote: > On 03/29/2012 07:36 AM, Ren Mingxin wrote: > > On 03/28/2012 06:58 PM, Michael S. Tsirkin wrote: > >> On Wed, Mar 28, 2012 at 02:54:43PM +0800, Ren Mingxin wrote: > >>> Hi, > >>> > >>> The current virtblk's naming algorithm just supports 26^3 > >>> disks. If there are mass of virtblks(exceeding 26^3), there > >>> will be disks with the same name. > >>> > >>> According to "sd_format_disk_name()", I add function > >>> "virtblk_name_format()" for virtblk to support mass of > >>> disks. > >>> > >>> Signed-off-by: Ren Mingxin<renmx@cn.fujitsu.com> > >> Nod. This is basically what 3e1a7ff8a0a7b948f2684930166954f9e8e776fe > >> did. Except, maybe we should move this function into block core > >> instead of duplicating it? Where would be a good place to put it? > > > > Yes, this was also what I thought. > > > > How about placing the "sd_format_disk_name()" > > as "disk_name_format()" into "block/genhd.c" > > ("include/linux/genhd.h")? > > Yes, that sounds like the appropriate solution (and name, and where to > put it). OK, once this is posted I'll get your ack and queue for 3.4 with other virtio fixups. > -- > Jens Axboe ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-03-29 12:46 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <4F72B5B3.6020602@cn.fujitsu.com>
2012-03-28 10:58 ` [PATCH] virtio_blk: add helper function to support mass of disks naming Michael S. Tsirkin
2012-03-29 4:40 ` Rusty Russell
2012-03-29 5:36 ` Ren Mingxin
2012-03-29 12:03 ` Jens Axboe
2012-03-29 12:46 ` Michael S. Tsirkin
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).