mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-19 20:10:43 +09:00
nfs: Enclose hostname in brackets when needed in nfs_do_root_mount
commit 98a2139f4f upstream.
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@redhat.com>
CC: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f1c84a5cb5
commit
cb2fee3223
@@ -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);
|
||||
root_mnt = vfs_kern_mount(fs_type, flags, root_devname, data);
|
||||
kfree(root_devname);
|
||||
return root_mnt;
|
||||
|
||||
Reference in New Issue
Block a user