RE: [PATCH] nfs: Enclose hostname in brackets when needed in nfs_do_root_mount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux