> -----Original Message----- > From: Jan Kara [mailto:jack@xxxxxxx] > Sent: Friday, September 02, 2011 7:10 PM > To: Myklebust, Trond > Cc: linux-nfs@xxxxxxxxxxxxxxx; Jan Kara; Josh Boyer; Myklebust, Trond > Subject: [PATCH] nfs: Enclose hostname in brackets when needed in > nfs_do_root_mount > > When hostname contains colon (e.g. when it is an IPv6 address) it needs > to be enclosed in brackets to make parsing of NFS device string > possible. > Fix nfs_do_root_mount() to enclose hostname properly when needed. NFS > code > actually does not need this as it does not parse the string passed by > nfs_do_root_mount() but the device string is exposed to userspace in > /proc/mounts. > > CC: Josh Boyer <jwboyer@xxxxxxxxxx> > CC: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> > --- > fs/nfs/super.c | 8 ++++++-- > 1 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/fs/nfs/super.c b/fs/nfs/super.c > index b961cea..42b74f8 100644 > --- a/fs/nfs/super.c > +++ b/fs/nfs/super.c > @@ -2694,11 +2694,15 @@ static struct vfsmount > *nfs_do_root_mount(struct file_system_type *fs_type, > char *root_devname; > size_t len; > > - len = strlen(hostname) + 3; > + len = strlen(hostname) + 5; > root_devname = kmalloc(len, GFP_KERNEL); > if (root_devname == NULL) > return ERR_PTR(-ENOMEM); > - snprintf(root_devname, len, "%s:/", hostname); > + /* Does hostname needs to be enclosed in brackets? */ > + if (strchr(hostname, ':')) > + snprintf(root_devname, len, "[%s]:/", hostname); > + else > + snprintf(root_devname, len, "%s:/", hostname); What if the hostname is already enclosed in brackets, as is usually the case if I enter an IPv6 address instead of a DNS name? Won't this cause it to be bracketed twice? IOW: If I try to mount -t nfs [fe80::20c:29ff:fee9:83e6]:/export /mnt won't the above end up returning a hostname of [[::20c:29ff:fee9:83e6]]? Cheers Trond -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html