NFS: Clean up NFSROOT command line parsing
Clean up: To reduce confusion, rename nfs_root_name as nfs_root_parms, as this buffer contains more than just the name of the remote server. Introduce documenting comments around nfs_root_setup(). Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
ed58b2917b
commit
60ac03685b
|
@ -99,7 +99,7 @@
|
||||||
#define NFS_ROOT "/tftpboot/%s"
|
#define NFS_ROOT "/tftpboot/%s"
|
||||||
|
|
||||||
/* Parameters passed from the kernel command line */
|
/* Parameters passed from the kernel command line */
|
||||||
static char nfs_root_name[256] __initdata = "";
|
static char nfs_root_parms[256] __initdata = "";
|
||||||
|
|
||||||
/* Address of NFS server */
|
/* Address of NFS server */
|
||||||
static __be32 servaddr __initdata = 0;
|
static __be32 servaddr __initdata = 0;
|
||||||
|
@ -369,7 +369,7 @@ static int __init root_nfs_init(void)
|
||||||
* be able to use the client IP address for the remote root
|
* be able to use the client IP address for the remote root
|
||||||
* directory (necessary for pure RARP booting).
|
* directory (necessary for pure RARP booting).
|
||||||
*/
|
*/
|
||||||
if (root_nfs_name(nfs_root_name) < 0 ||
|
if (root_nfs_name(nfs_root_parms) < 0 ||
|
||||||
root_nfs_addr() < 0)
|
root_nfs_addr() < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -380,23 +380,37 @@ static int __init root_nfs_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Parse NFS server and directory information passed on the kernel
|
* Parse NFS server and directory information passed on the kernel
|
||||||
* command line.
|
* command line.
|
||||||
|
*
|
||||||
|
* nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
|
||||||
|
*
|
||||||
|
* If there is a "%s" token in the <root-dir> string, it is replaced
|
||||||
|
* by the ASCII-representation of the client's IP address.
|
||||||
*/
|
*/
|
||||||
static int __init nfs_root_setup(char *line)
|
static int __init nfs_root_setup(char *line)
|
||||||
{
|
{
|
||||||
ROOT_DEV = Root_NFS;
|
ROOT_DEV = Root_NFS;
|
||||||
|
|
||||||
if (line[0] == '/' || line[0] == ',' || (line[0] >= '0' && line[0] <= '9')) {
|
if (line[0] == '/' || line[0] == ',' || (line[0] >= '0' && line[0] <= '9')) {
|
||||||
strlcpy(nfs_root_name, line, sizeof(nfs_root_name));
|
strlcpy(nfs_root_parms, line, sizeof(nfs_root_parms));
|
||||||
} else {
|
} else {
|
||||||
int n = strlen(line) + sizeof(NFS_ROOT) - 1;
|
size_t n = strlen(line) + sizeof(NFS_ROOT) - 1;
|
||||||
if (n >= sizeof(nfs_root_name))
|
if (n >= sizeof(nfs_root_parms))
|
||||||
line[sizeof(nfs_root_name) - sizeof(NFS_ROOT) - 2] = '\0';
|
line[sizeof(nfs_root_parms) - sizeof(NFS_ROOT) - 2] = '\0';
|
||||||
sprintf(nfs_root_name, NFS_ROOT, line);
|
sprintf(nfs_root_parms, NFS_ROOT, line);
|
||||||
}
|
}
|
||||||
root_server_addr = root_nfs_parse_addr(nfs_root_name);
|
|
||||||
|
/*
|
||||||
|
* Extract the IP address of the NFS server containing our
|
||||||
|
* root file system, if one was specified.
|
||||||
|
*
|
||||||
|
* Note: root_nfs_parse_addr() removes the server-ip from
|
||||||
|
* nfs_root_parms, if it exists.
|
||||||
|
*/
|
||||||
|
root_server_addr = root_nfs_parse_addr(nfs_root_parms);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue