From b6ca0241b0ba2f166f12b9d58c608fb777ec3bd5 Mon Sep 17 00:00:00 2001 From: Enrico Jorns Date: Mon, 19 Sep 2016 18:03:49 +0200 Subject: [PATCH] fs: nfs: pick up network interface bootargs parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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= option. Signed-off-by: Enrico Jorns Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer --- fs/nfs.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fs/nfs.c b/fs/nfs.c index a0a9dfcf7..97f01cfb3 100644 --- a/fs/nfs.c +++ b/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);