On Tue, Apr 10, 2012 at 04:16:10PM +0300, Avi Kivity wrote: > On 04/10/2012 10:28 AM, Ren Mingxin wrote: > > The current virtio block's naming algorithm just supports 18278 > > (26^3 + 26^2 + 26) disks. If there are mass of virtio blocks, > > there will be disks with the same name. > > > > Based on commit 3e1a7ff8a0a7b948f2684930166954f9e8e776fe, I add > > function "virtblk_name_format()" for virtio block to support mass > > of disks naming. > > > > Signed-off-by: Ren Mingxin <renmx@xxxxxxxxxxxxxx> > > --- > > drivers/block/virtio_blk.c | 38 ++++++++++++++++++++++++++------------ > > 1 files changed, 26 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c > > index c4a60ba..86516c8 100644 > > --- a/drivers/block/virtio_blk.c > > +++ b/drivers/block/virtio_blk.c > > @@ -374,6 +374,31 @@ 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); > > Duplicate line. > > > + char *end = buf + buflen; > > + char *p; > > + int unit; > > + > > + p = end - 1; > > + *p = '\0'; > > + unit = base; > > Why not use 'base' below? neither unit nor base change. Yes it's a bit strange, it was the same in Tejun's patch. Tejun, any idea? > > + 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; > > +} > > + > > > > -- > error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html