fs: nfs: pick up network interface bootargs parameter
This adds the linux.bootarg device parameter from the network device of the current nfs connection and adds it to the nfs bootargs line. This allows booting from nfs without manually setting a ip=dhcp or ip=<ipaddr> option. Signed-off-by: Enrico Jorns <ejo@pengutronix.de> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
841d83ff0a
commit
b6ca0241b0
8
fs/nfs.c
8
fs/nfs.c
|
@ -1314,6 +1314,7 @@ static char *rootnfsopts;
|
|||
static void nfs_set_rootarg(struct nfs_priv *npriv, struct fs_device_d *fsdev)
|
||||
{
|
||||
char *str, *tmp;
|
||||
const char *bootargs;
|
||||
|
||||
str = basprintf("root=/dev/nfs nfsroot=%pI4:%s%s%s", &npriv->server, npriv->path,
|
||||
rootnfsopts[0] ? "," : "", rootnfsopts);
|
||||
|
@ -1331,6 +1332,13 @@ static void nfs_set_rootarg(struct nfs_priv *npriv, struct fs_device_d *fsdev)
|
|||
str = tmp;
|
||||
}
|
||||
|
||||
bootargs = dev_get_param(&npriv->con->edev->dev, "linux.bootargs");
|
||||
if (bootargs) {
|
||||
tmp = basprintf("%s %s", str, bootargs);
|
||||
free(str);
|
||||
str = tmp;
|
||||
}
|
||||
|
||||
fsdev_set_linux_rootarg(fsdev, str);
|
||||
|
||||
free(str);
|
||||
|
|
Loading…
Reference in New Issue