Commit 306a0753 authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust
Browse files

NFS: Allow NFSROOT debugging messages to be enabled dynamically



As a convenience, introduce a kernel command line option to enable
NFSROOT debugging messages.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 8d232103
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -159,6 +159,28 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
                Default: any


nfsrootdebug

  This parameter enables debugging messages to appear in the kernel
  log at boot time so that administrators can verify that the correct
  NFS mount options, server address, and root path are passed to the
  NFS client.


rdinit=<executable file>

  To specify which file contains the program that starts system
  initialization, administrators can use this command line parameter.
  The default value of this parameter is "/init".  If the specified
  file exists and the kernel can execute it, root filesystem related
  kernel command line parameters, including `nfsroot=', are ignored.

  A description of the process of mounting the root file system can be
  found in:

    Documentation/early-userspace/README




3.) Boot Loader
+4 −1
Original line number Diff line number Diff line
@@ -1532,12 +1532,15 @@ and is between 256 and 4096 characters. It is defined in the file
			1 to enable accounting
			Default value is 0.

	nfsaddrs=	[NFS]
	nfsaddrs=	[NFS] Deprecated.  Use ip= instead.
			See Documentation/filesystems/nfs/nfsroot.txt.

	nfsroot=	[NFS] nfs root filesystem for disk-less boxes.
			See Documentation/filesystems/nfs/nfsroot.txt.

	nfsrootdebug	[NFS] enable nfsroot debugging messages.
			See Documentation/filesystems/nfs/nfsroot.txt.

	nfs.callback_tcpport=
			[NFS] set the TCP port on which the NFSv4 callback
			channel should listen.
+13 −6
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@
 *				NFS over TCP.
 *	Fabian Frederick:	Option parser rebuilt (using parser lib)
 *	Chuck Lever	:	Use super.c's text-based mount option parsing
 *	Chuck Lever	:	Add "nfsrootdebug".
 */

#include <linux/types.h>
@@ -80,8 +81,6 @@

#include "internal.h"

/* Define this to allow debugging output */
#undef NFSROOT_DEBUG
#define NFSDBG_FACILITY NFSDBG_ROOT

/* Default path we try to mount. "%s" gets replaced by our IP address */
@@ -102,6 +101,18 @@ static char nfs_export_path[NFS_MAXPATHLEN + 1] __initdata = "";
/* server:export path string passed to super.c */
static char nfs_root_device[NFS_MAXPATHLEN + 1] __initdata = "";

/*
 * When the "nfsrootdebug" kernel command line option is specified,
 * enable debugging messages for NFSROOT.
 */
static int __init nfs_root_debug(char *__unused)
{
	nfs_debug |= NFSDBG_ROOT | NFSDBG_MOUNT;
	return 1;
}

__setup("nfsrootdebug", nfs_root_debug);

/*
 *  Parse NFS server and directory information passed on the kernel
 *  command line.
@@ -282,10 +293,6 @@ out_devnametoolong:
 */
int __init nfs_root_data(char **root_device, char **root_data)
{
#ifdef NFSROOT_DEBUG
	nfs_debug |= NFSDBG_ROOT | NFSDBG_MOUNT;
#endif	/* NFSROOT_DEBUG */

	servaddr = root_server_addr;
	if (servaddr == htonl(INADDR_NONE)) {
		printk(KERN_ERR "Root-NFS: no NFS server address\n");