diff options
Diffstat (limited to 'fs/nfs/super.c')
| -rw-r--r-- | fs/nfs/super.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 37412f706b3..4ac7fca7e4b 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -2428,7 +2428,7 @@ nfs_xdev_mount(struct file_system_type *fs_type, int flags,  	dprintk("--> nfs_xdev_mount()\n");  	/* create a new volume representation */ -	server = nfs_clone_server(NFS_SB(data->sb), data->fh, data->fattr); +	server = nfs_clone_server(NFS_SB(data->sb), data->fh, data->fattr, data->authflavor);  	if (IS_ERR(server)) {  		error = PTR_ERR(server);  		goto out_err_noserver; @@ -2767,11 +2767,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; @@ -2951,7 +2955,7 @@ nfs4_xdev_mount(struct file_system_type *fs_type, int flags,  	dprintk("--> nfs4_xdev_mount()\n");  	/* create a new volume representation */ -	server = nfs_clone_server(NFS_SB(data->sb), data->fh, data->fattr); +	server = nfs_clone_server(NFS_SB(data->sb), data->fh, data->fattr, data->authflavor);  	if (IS_ERR(server)) {  		error = PTR_ERR(server);  		goto out_err_noserver;  |