Commit 1b4c6065 authored by Trond Myklebust's avatar Trond Myklebust

NFS: Replace nfsroot on-stack filehandle

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent b157b06c
...@@ -488,7 +488,6 @@ static int __init root_nfs_ports(void) ...@@ -488,7 +488,6 @@ static int __init root_nfs_ports(void)
*/ */
static int __init root_nfs_get_handle(void) static int __init root_nfs_get_handle(void)
{ {
struct nfs_fh fh;
struct sockaddr_in sin; struct sockaddr_in sin;
unsigned int auth_flav_len = 0; unsigned int auth_flav_len = 0;
struct nfs_mount_request request = { struct nfs_mount_request request = {
...@@ -499,21 +498,24 @@ static int __init root_nfs_get_handle(void) ...@@ -499,21 +498,24 @@ static int __init root_nfs_get_handle(void)
NFS_MNT3_VERSION : NFS_MNT_VERSION, NFS_MNT3_VERSION : NFS_MNT_VERSION,
.protocol = (nfs_data.flags & NFS_MOUNT_TCP) ? .protocol = (nfs_data.flags & NFS_MOUNT_TCP) ?
XPRT_TRANSPORT_TCP : XPRT_TRANSPORT_UDP, XPRT_TRANSPORT_TCP : XPRT_TRANSPORT_UDP,
.fh = &fh,
.auth_flav_len = &auth_flav_len, .auth_flav_len = &auth_flav_len,
}; };
int status; int status = -ENOMEM;
request.fh = nfs_alloc_fhandle();
if (!request.fh)
goto out;
set_sockaddr(&sin, servaddr, htons(mount_port)); set_sockaddr(&sin, servaddr, htons(mount_port));
status = nfs_mount(&request); status = nfs_mount(&request);
if (status < 0) if (status < 0)
printk(KERN_ERR "Root-NFS: Server returned error %d " printk(KERN_ERR "Root-NFS: Server returned error %d "
"while mounting %s\n", status, nfs_export_path); "while mounting %s\n", status, nfs_export_path);
else { else {
nfs_data.root.size = fh.size; nfs_data.root.size = request.fh->size;
memcpy(nfs_data.root.data, fh.data, fh.size); memcpy(&nfs_data.root.data, request.fh->data, request.fh->size);
} }
nfs_free_fhandle(request.fh);
out:
return status; return status;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment