[klibc] [PATCH 2.5.69 2/3] Remove NFS root support from the kernel

Bryan O'Sullivan bos at serpentine.com
Fri May 23 00:08:40 PDT 2003


This patch removes support for use of NFS as a root filesystem from the
kernel.  It also updates the documentation to reflect this.

 b/Documentation/nfsroot.txt            |   97 +++---
 b/arch/arm/def-configs/a5k             |    1 
 b/arch/arm/def-configs/adi_evb         |    1 
 b/arch/arm/def-configs/adsbitsy        |    1 
 b/arch/arm/def-configs/anakin          |    1 
 b/arch/arm/def-configs/assabet         |    1 
 b/arch/arm/def-configs/badge4          |    1 
 b/arch/arm/def-configs/cerfcube        |    1 
 b/arch/arm/def-configs/cerfpda         |    1 
 b/arch/arm/def-configs/cerfpod         |    1 
 b/arch/arm/def-configs/clps7500        |    1 
 b/arch/arm/def-configs/ebsa110         |    1 
 b/arch/arm/def-configs/edb7211         |    1 
 b/arch/arm/def-configs/epxa10db        |    1 
 b/arch/arm/def-configs/flexanet        |    1 
 b/arch/arm/def-configs/footbridge      |    1 
 b/arch/arm/def-configs/fortunet        |    1 
 b/arch/arm/def-configs/freebird        |    1 
 b/arch/arm/def-configs/freebird_new    |    1 
 b/arch/arm/def-configs/graphicsclient  |    1 
 b/arch/arm/def-configs/graphicsmaster  |    1 
 b/arch/arm/def-configs/h3600           |    1 
 b/arch/arm/def-configs/huw_webpanel    |    1 
 b/arch/arm/def-configs/integrator      |    1 
 b/arch/arm/def-configs/iq80310         |    1 
 b/arch/arm/def-configs/iq80321         |    1 
 b/arch/arm/def-configs/jornada720      |    1 
 b/arch/arm/def-configs/lart            |    1 
 b/arch/arm/def-configs/lubbock         |    1 
 b/arch/arm/def-configs/omnimeter       |    1 
 b/arch/arm/def-configs/pangolin        |    1 
 b/arch/arm/def-configs/pfs168_mqtft    |    1 
 b/arch/arm/def-configs/pfs168_mqvga    |    1 
 b/arch/arm/def-configs/pfs168_sastn    |    1 
 b/arch/arm/def-configs/pfs168_satft    |    1 
 b/arch/arm/def-configs/pleb            |    1 
 b/arch/arm/def-configs/stork           |    1 
 b/arch/arm/def-configs/system3         |    1 
 b/arch/arm/def-configs/trizeps         |    1 
 b/arch/arm/defconfig                   |    1 
 b/arch/cris/defconfig                  |    1 
 b/arch/m68k/defconfig                  |    1 
 b/arch/m68knommu/defconfig             |    1 
 b/arch/mips/defconfig                  |    1 
 b/arch/mips/defconfig-atlas            |    1 
 b/arch/mips/defconfig-ddb5476          |    1 
 b/arch/mips/defconfig-ddb5477          |    1 
 b/arch/mips/defconfig-decstation       |    1 
 b/arch/mips/defconfig-ip22             |    1 
 b/arch/mips/defconfig-it8172           |    1 
 b/arch/mips/defconfig-malta            |    1 
 b/arch/mips/defconfig-ocelot           |    1 
 b/arch/mips/defconfig-pb1000           |    1 
 b/arch/mips/defconfig-rm200            |    1 
 b/arch/mips64/defconfig                |    1 
 b/arch/mips64/defconfig-ip22           |    1 
 b/arch/mips64/defconfig-ip27           |    1 
 b/arch/mips64/defconfig-ip32           |    1 
 b/arch/parisc/defconfig                |    1 
 b/arch/ppc/configs/FADS_defconfig      |    1 
 b/arch/ppc/configs/IVMS8_defconfig     |    1 
 b/arch/ppc/configs/SM850_defconfig     |    1 
 b/arch/ppc/configs/SPD823TS_defconfig  |    1 
 b/arch/ppc/configs/TQM823L_defconfig   |    1 
 b/arch/ppc/configs/TQM8260_defconfig   |    1 
 b/arch/ppc/configs/TQM850L_defconfig   |    1 
 b/arch/ppc/configs/TQM860L_defconfig   |    1 
 b/arch/ppc/configs/adir_defconfig      |    1 
 b/arch/ppc/configs/ash_defconfig       |    1 
 b/arch/ppc/configs/beech_defconfig     |    1 
 b/arch/ppc/configs/bseip_defconfig     |    1 
 b/arch/ppc/configs/cedar_defconfig     |    1 
 b/arch/ppc/configs/cpci405_defconfig   |    1 
 b/arch/ppc/configs/ep405_defconfig     |    1 
 b/arch/ppc/configs/est8260_defconfig   |    1 
 b/arch/ppc/configs/ev64260_defconfig   |    1 
 b/arch/ppc/configs/k2_defconfig        |    1 
 b/arch/ppc/configs/lopec_defconfig     |    1 
 b/arch/ppc/configs/mbx_defconfig       |    1 
 b/arch/ppc/configs/mcpn765_defconfig   |    1 
 b/arch/ppc/configs/menf1_defconfig     |    1 
 b/arch/ppc/configs/mvme5100_defconfig  |    1 
 b/arch/ppc/configs/oak_defconfig       |    1 
 b/arch/ppc/configs/pcore_defconfig     |    1 
 b/arch/ppc/configs/pplus_defconfig     |    1 
 b/arch/ppc/configs/prpmc750_defconfig  |    1 
 b/arch/ppc/configs/prpmc800_defconfig  |    1 
 b/arch/ppc/configs/rainier_defconfig   |    1 
 b/arch/ppc/configs/redwood5_defconfig  |    1 
 b/arch/ppc/configs/redwood6_defconfig  |    1 
 b/arch/ppc/configs/redwood_defconfig   |    1 
 b/arch/ppc/configs/rpxcllf_defconfig   |    1 
 b/arch/ppc/configs/rpxlite_defconfig   |    1 
 b/arch/ppc/configs/sandpoint_defconfig |    1 
 b/arch/ppc/configs/spruce_defconfig    |    1 
 b/arch/ppc/configs/sycamore_defconfig  |    1 
 b/arch/ppc/configs/walnut_defconfig    |    1 
 b/arch/ppc/configs/zx4500_defconfig    |    1 
 b/arch/ppc/defconfig                   |    1 
 b/arch/ppc/platforms/adir_setup.c      |    4 
 b/arch/ppc/platforms/ev64260_setup.c   |    4 
 b/arch/ppc/platforms/k2_setup.c        |    4 
 b/arch/ppc/platforms/lopec_setup.c     |    2 
 b/arch/ppc/platforms/mcpn765_setup.c   |    4 
 b/arch/ppc/platforms/menf1_setup.c     |    4 
 b/arch/ppc/platforms/mvme5100_setup.c  |    4 
 b/arch/ppc/platforms/pal4_setup.c      |    2 
 b/arch/ppc/platforms/pcore_setup.c     |    4 
 b/arch/ppc/platforms/powerpmc250.c     |    4 
 b/arch/ppc/platforms/pplus_setup.c     |    4 
 b/arch/ppc/platforms/prep_setup.c      |    4 
 b/arch/ppc/platforms/prpmc750_setup.c  |    4 
 b/arch/ppc/platforms/prpmc800_setup.c  |    4 
 b/arch/ppc/platforms/sandpoint_setup.c |    4 
 b/arch/ppc/platforms/spruce_setup.c    |    4 
 b/arch/ppc/platforms/zx4500_setup.c    |    4 
 b/arch/sparc/defconfig                 |    1 
 b/arch/um/config.release               |    1 
 b/fs/Kconfig                           |   11 
 b/fs/nfs/Makefile                      |    1 
 b/include/linux/root_dev.h             |    2 
 b/init/do_mounts.c                     |   51 +--
 b/kernel/sysctl.c                      |    4 
 b/net/sunrpc/pmap_clnt.c               |   33 --
 fs/nfs/mount_clnt.c                    |  183 ------------
 fs/nfs/nfsroot.c                       |  472 ---------------------------------
 126 files changed, 65 insertions(+), 953 deletions(-)

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1231  -> 1.1234 
#	arch/ppc/configs/menf1_defconfig	1.11    -> 1.12   
#	arch/arm/def-configs/graphicsmaster	1.8     -> 1.9    
#	arch/ppc/platforms/zx4500_setup.c	1.7     -> 1.8    
#	arch/ppc/configs/sycamore_defconfig	1.2     -> 1.3    
#	arch/arm/def-configs/edb7211	1.4     -> 1.5    
#	arch/arm/def-configs/pfs168_satft	1.7     -> 1.8    
#	arch/arm/def-configs/clps7500	1.4     -> 1.5    
#	arch/arm/def-configs/cerfcube	1.8     -> 1.9    
#	arch/arm/def-configs/trizeps	1.2     -> 1.3    
#	arch/arm/def-configs/pfs168_mqvga	1.7     -> 1.8    
#	arch/ppc/platforms/pcore_setup.c	1.7     -> 1.8    
#	arch/arm/def-configs/ebsa110	1.7     -> 1.8    
#	arch/ppc/configs/k2_defconfig	1.11    -> 1.12   
#	 arch/m68k/defconfig	1.4     -> 1.5    
#	arch/parisc/defconfig	1.7     -> 1.8    
#	arch/arm/def-configs/freebird_new	1.7     -> 1.8    
#	arch/arm/def-configs/pfs168_sastn	1.7     -> 1.8    
#	arch/ppc/configs/oak_defconfig	1.14    -> 1.15   
#	 fs/nfs/mount_clnt.c	1.7     ->         (deleted)      
#	arch/arm/def-configs/anakin	1.7     -> 1.8    
#	arch/arm/def-configs/integrator	1.7     -> 1.8    
#	arch/ppc/configs/mvme5100_defconfig	1.9     -> 1.10   
#	arch/ppc/configs/ash_defconfig	1.6     -> 1.7    
#	     kernel/sysctl.c	1.41    -> 1.42   
#	arch/ppc/platforms/spruce_setup.c	1.11    -> 1.12   
#	arch/arm/def-configs/lubbock	1.5     -> 1.6    
#	 arch/mips/defconfig	1.7     -> 1.8    
#	arch/ppc/configs/spruce_defconfig	1.6     -> 1.7    
#	arch/arm/def-configs/freebird	1.7     -> 1.8    
#	arch/arm/def-configs/iq80310	1.16    -> 1.17   
#	arch/arm/def-configs/cerfpda	1.8     -> 1.9    
#	arch/ppc/configs/rainier_defconfig	1.2     -> 1.3    
#	arch/ppc/platforms/powerpmc250.c	1.7     -> 1.8    
#	     fs/nfs/Makefile	1.8     -> 1.9    
#	arch/ppc/configs/prpmc750_defconfig	1.6     -> 1.7    
#	arch/ppc/configs/TQM823L_defconfig	1.13    -> 1.14   
#	arch/ppc/configs/bseip_defconfig	1.14    -> 1.15   
#	arch/arm/def-configs/jornada720	1.9     -> 1.10   
#	arch/arm/def-configs/iq80321	1.3     -> 1.4    
#	arch/mips/defconfig-ddb5477	1.4     -> 1.5    
#	arch/ppc/configs/zx4500_defconfig	1.6     -> 1.7    
#	arch/arm/def-configs/h3600	1.8     -> 1.9    
#	arch/ppc/configs/TQM8260_defconfig	1.5     -> 1.6    
#	arch/ppc/platforms/ev64260_setup.c	1.7     -> 1.8    
#	include/linux/root_dev.h	1.1     -> 1.2    
#	arch/mips/defconfig-malta	1.4     -> 1.5    
#	  arch/arm/defconfig	1.5     -> 1.6    
#	 arch/cris/defconfig	1.10    -> 1.11   
#	arch/arm/def-configs/epxa10db	1.9     -> 1.10   
#	arch/arm/def-configs/a5k	1.5     -> 1.6    
#	arch/ppc/configs/TQM860L_defconfig	1.15    -> 1.16   
#	arch/ppc/platforms/mvme5100_setup.c	1.6     -> 1.7    
#	arch/arm/def-configs/assabet	1.10    -> 1.11   
#	arch/ppc/platforms/prpmc750_setup.c	1.7     -> 1.8    
#	arch/arm/def-configs/footbridge	1.8     -> 1.9    
#	arch/ppc/platforms/adir_setup.c	1.6     -> 1.7    
#	arch/mips/defconfig-pb1000	1.4     -> 1.5    
#	arch/arm/def-configs/omnimeter	1.6     -> 1.7    
#	arch/mips/defconfig-atlas	1.4     -> 1.5    
#	arch/mips/defconfig-it8172	1.10    -> 1.11   
#	    init/do_mounts.c	1.48    -> 1.50   
#	arch/arm/def-configs/system3	1.7     -> 1.8    
#	arch/ppc/configs/SM850_defconfig	1.13    -> 1.14   
#	arch/arm/def-configs/lart	1.9     -> 1.10   
#	arch/mips/defconfig-ocelot	1.4     -> 1.5    
#	arch/ppc/configs/sandpoint_defconfig	1.12    -> 1.13   
#	arch/mips64/defconfig-ip27	1.8     -> 1.9    
#	arch/ppc/configs/redwood_defconfig	1.6     -> 1.7    
#	arch/arm/def-configs/pfs168_mqtft	1.7     -> 1.8    
#	net/sunrpc/pmap_clnt.c	1.6     -> 1.7    
#	arch/arm/def-configs/adi_evb	1.7     -> 1.8    
#	arch/arm/def-configs/pangolin	1.10    -> 1.11   
#	arch/ppc/configs/pcore_defconfig	1.5     -> 1.6    
#	arch/ppc/configs/mbx_defconfig	1.14    -> 1.15   
#	arch/ppc/configs/est8260_defconfig	1.15    -> 1.16   
#	arch/ppc/platforms/prpmc800_setup.c	1.7     -> 1.8    
#	arch/ppc/platforms/lopec_setup.c	1.19    -> 1.20   
#	arch/ppc/configs/TQM850L_defconfig	1.13    -> 1.14   
#	          fs/Kconfig	1.24    -> 1.25   
#	arch/mips64/defconfig-ip22	1.8     -> 1.9    
#	arch/ppc/configs/redwood6_defconfig	1.2     -> 1.3    
#	arch/ppc/configs/mcpn765_defconfig	1.6     -> 1.7    
#	arch/ppc/configs/pplus_defconfig	1.11    -> 1.12   
#	arch/ppc/configs/beech_defconfig	1.2     -> 1.3    
#	arch/ppc/configs/lopec_defconfig	1.7     -> 1.8    
#	arch/ppc/configs/IVMS8_defconfig	1.15    -> 1.16   
#	arch/ppc/platforms/k2_setup.c	1.9     -> 1.10   
#	arch/arm/def-configs/huw_webpanel	1.5     -> 1.6    
#	arch/ppc/platforms/mcpn765_setup.c	1.11    -> 1.12   
#	arch/arm/def-configs/adsbitsy	1.9     -> 1.10   
#	arch/m68knommu/defconfig	1.2     -> 1.3    
#	arch/arm/def-configs/pleb	1.7     -> 1.8    
#	arch/ppc/configs/FADS_defconfig	1.6     -> 1.7    
#	arch/ppc/configs/adir_defconfig	1.6     -> 1.7    
#	    fs/nfs/nfsroot.c	1.11    ->         (deleted)      
#	arch/ppc/configs/cedar_defconfig	1.7     -> 1.8    
#	arch/sparc/defconfig	1.17    -> 1.18   
#	arch/mips64/defconfig	1.10    -> 1.11   
#	arch/ppc/configs/rpxlite_defconfig	1.14    -> 1.15   
#	arch/ppc/configs/ep405_defconfig	1.6     -> 1.7    
#	arch/arm/def-configs/badge4	1.9     -> 1.10   
#	  arch/ppc/defconfig	1.19    -> 1.20   
#	arch/ppc/configs/rpxcllf_defconfig	1.14    -> 1.15   
#	arch/ppc/configs/redwood5_defconfig	1.7     -> 1.8    
#	arch/ppc/configs/walnut_defconfig	1.14    -> 1.15   
#	arch/ppc/platforms/menf1_setup.c	1.9     -> 1.10   
#	arch/ppc/platforms/prep_setup.c	1.40    -> 1.41   
#	arch/arm/def-configs/stork	1.7     -> 1.8    
#	arch/ppc/configs/ev64260_defconfig	1.6     -> 1.7    
#	arch/ppc/configs/prpmc800_defconfig	1.6     -> 1.7    
#	arch/ppc/configs/cpci405_defconfig	1.8     -> 1.9    
#	arch/ppc/platforms/pal4_setup.c	1.5     -> 1.6    
#	arch/mips/defconfig-rm200	1.6     -> 1.7    
#	Documentation/nfsroot.txt	1.1     -> 1.3    
#	arch/arm/def-configs/flexanet	1.9     -> 1.10   
#	arch/ppc/platforms/pplus_setup.c	1.15    -> 1.16   
#	arch/mips64/defconfig-ip32	1.4     -> 1.5    
#	arch/mips/defconfig-ddb5476	1.10    -> 1.11   
#	arch/um/config.release	1.2     -> 1.3    
#	arch/ppc/configs/SPD823TS_defconfig	1.13    -> 1.14   
#	arch/arm/def-configs/cerfpod	1.8     -> 1.9    
#	arch/mips/defconfig-ip22	1.6     -> 1.7    
#	arch/ppc/platforms/sandpoint_setup.c	1.13    -> 1.14   
#	arch/arm/def-configs/fortunet	1.5     -> 1.6    
#	arch/arm/def-configs/graphicsclient	1.10    -> 1.11   
#	arch/mips/defconfig-decstation	1.6     -> 1.7    
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/05/22	bos at serpentine.internal.keyresearch.com	1.1232
# Get rid of CONFIG_ROOT_NFS
# --------------------------------------------
# 03/05/22	bos at serpentine.internal.keyresearch.com	1.1233
# Get rid of nfsroot.
# --------------------------------------------
# 03/05/22	bos at serpentine.internal.keyresearch.com	1.1234
# Don't do anything if root=initramfs or root=/dev/nfs.
# --------------------------------------------
#
diff -Nru a/Documentation/nfsroot.txt b/Documentation/nfsroot.txt
--- a/Documentation/nfsroot.txt	Thu May 22 15:40:37 2003
+++ b/Documentation/nfsroot.txt	Thu May 22 15:40:37 2003
@@ -3,6 +3,7 @@
 
 Written 1996 by Gero Kuhlmann <gero at gkminix.han.de>
 Updated 1997 by Martin Mares <mj at atrey.karlin.mff.cuni.cz>
+Updated 2003 by Bryan O'Sullivan <bos at serpentine.com>
 
 
 
@@ -22,11 +23,12 @@
 
 In order to use nfsroot you have to select support for NFS during
 kernel configuration. Note that NFS cannot be loaded as a module
-in this case. The configuration script will then ask you whether
-you want to use nfsroot, and if yes what kind of auto configuration
-system you want to use. Selecting both BOOTP and RARP is safe.
-
+in this case.
 
+The kernel no longer supports nfsroot or IP autoconfiguration directly.
+To enable these features, you must build kinit from the klibc
+distribution, and add the kinit binary to the initramfs cpio archive
+as /sbin/init.
 
 
 2.) Kernel command line
@@ -42,7 +44,7 @@
 root=/dev/nfs
 
   This is necessary to enable the pseudo-NFS-device. Note that it's not a
-  real device but just a synonym to tell the kernel to use NFS instead of
+  real device but just a synonym to tell kinit to use NFS instead of
   a real device.
 
 
@@ -79,55 +81,46 @@
 
 ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
 
-  This parameter tells the kernel how to configure IP addresses of devices
-  and also how to set up the IP routing table. It was originally called `nfsaddrs',
-  but now the boot-time IP configuration works independently of NFS, so it
-  was renamed to `ip' and the old name remained as an alias for compatibility
-  reasons.
-
-  If this parameter is missing from the kernel command line, all fields are
-  assumed to be empty, and the defaults mentioned below apply. In general
-  this means that the kernel tries to configure everything using both
-  RARP and BOOTP (depending on what has been enabled during kernel confi-
-  guration, and if both what protocol answer got in first).
-
-  <client-ip>	IP address of the client. If empty, the address will either
-		be determined by RARP or BOOTP. What protocol is used de-
-		pends on what has been enabled during kernel configuration
-		and on the <autoconf> parameter. If this parameter is not
-		empty, neither RARP nor BOOTP will be used.
-
-  <server-ip>	IP address of the NFS server. If RARP is used to determine
-		the client address and this parameter is NOT empty only
-		replies from the specified server are accepted. To use
-		different RARP and NFS server, specify your RARP server
-		here (or leave it blank), and specify your NFS server in
-		the `nfsroot' parameter (see above). If this entry is blank
-		the address of the server is used which answered the RARP
-		or BOOTP request.
+  This parameter tells kinit how to configure IP addresses of devices
+  and also how to set up the IP routing table. It was originally called
+  `nfsaddrs', but now the boot-time IP configuration works independently
+  of NFS, so it was renamed to `ip' and the old name remained as an
+  alias for compatibility reasons.
+
+  If this parameter is missing from the kernel command line, all fields
+  are assumed to be empty, and the defaults mentioned below apply. In
+  general this means that kinit tries to configure everything using
+  autoconfiguration, which by default uses DHCP (BOOTP support exists,
+  but has not been tested).
+
+  <client-ip>	IP address of the client. If empty, the address will be
+		determined using autoconfig.
+
+  <server-ip>	IP address of the NFS server.  If this entry is blank
+		the address of the server is used which answered the
+		autoconfig request.
 
   <gw-ip>	IP address of a gateway if the server is on a different
 		subnet. If this entry is empty no gateway is used and the
 		server is assumed to be on the local network, unless a
-		value has been received by BOOTP.
+		value has been received during autoconfig.
 
   <netmask>	Netmask for local network interface. If this is empty,
 		the netmask is derived from the client IP address assuming
-		classful addressing, unless overridden in BOOTP reply.
+		classful addressing, unless overridden by autoconfig.
 
   <hostname>	Name of the client. If empty, the client IP address is
-		used in ASCII notation, or the value received by BOOTP.
+		used in ASCII notation, or the value received by
+		autoconfig.
 
   <device>	Name of network device to use. If this is empty, all
-		devices are used for RARP and BOOTP requests, and the
-		first one we receive a reply on is configured. If you have
+		devices are used for autoconfig requests, and the first
+		one we receive a reply on is configured. If you have
 		only one device, you can safely leave this blank.
 
   <autoconf>	Method to use for autoconfiguration. If this is either
-		'rarp' or 'bootp', the specified protocol is used.
-		If the value is 'both' or empty, both protocols are used
-		so far as they have been enabled during kernel configura-
-		tion. 'off' means no autoconfiguration.
+		'dhcp' or 'bootp', the specified protocol is used.
+		If the value is 'both' or empty, both protocols are used.
 
   The <autoconf> parameter can appear alone as the value to the `ip'
   parameter (without all the ':' characters before) in which case auto-
@@ -142,8 +135,11 @@
 To get the kernel into memory different approaches can be used. They
 depend on what facilities are available:
 
+[NOTE: This section is way out of date, and probably now incorrect in
+many respects. -bos]
 
 3.1)  Writing the kernel onto a floppy using dd:
+
 	As always you can just write the kernel onto a floppy using dd,
 	but then it's not possible to use kernel command lines at all.
 	To substitute the 'root=' parameter, create a dummy device on any
@@ -159,14 +155,11 @@
 
 		rdev /dev/fd0 /dev/boot255
 
-	You can then remove the dummy device /dev/boot255 again. There
-	is no real device available for it.
-	The other two kernel command line parameters cannot be substi-
-	tuted with rdev. Therefore, using this method the kernel will
-	by default use RARP and/or BOOTP, and if it gets an answer via
-	RARP will mount the directory /tftpboot/<client-ip>/ as its
-	root. If it got a BOOTP answer the directory name in that answer
-	is used.
+	You can then remove the dummy device /dev/boot255 again. There is
+	no real device available for it.  The other two kernel command
+	line parameters cannot be substituted with rdev. Therefore,
+	using this method the kernel will by default use autoconfig,
+	and will mount the directory /tftpboot/<client-ip>/ as its root.
 
 
 3.2) Using LILO
@@ -200,11 +193,15 @@
 4.) Credits
     -------
 
-  The nfsroot code in the kernel and the RARP support have been written
+  The nfsroot code in the kernel and the RARP support were written
   by Gero Kuhlmann <gero at gkminix.han.de>.
 
-  The rest of the IP layer autoconfiguration code has been written
+  The rest of the IP layer autoconfiguration code was written
   by Martin Mares <mj at atrey.karlin.mff.cuni.cz>.
 
   In order to write the initial version of nfsroot I would like to thank
   Jens-Uwe Mager <jum at anubis.han.de> for his help.
+
+  The klibc-based replacements for the kernel ipconfig and nfsroot code
+  were written by Russell King <rmk at arm.linux.org.uk> and Bryan O'Sullivan
+  <bos at serpentine.com>, respectively.
diff -Nru a/arch/arm/def-configs/a5k b/arch/arm/def-configs/a5k
--- a/arch/arm/def-configs/a5k	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/a5k	Thu May 22 15:40:37 2003
@@ -408,7 +408,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/adi_evb b/arch/arm/def-configs/adi_evb
--- a/arch/arm/def-configs/adi_evb	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/adi_evb	Thu May 22 15:40:37 2003
@@ -549,7 +549,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/arm/def-configs/adsbitsy b/arch/arm/def-configs/adsbitsy
--- a/arch/arm/def-configs/adsbitsy	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/adsbitsy	Thu May 22 15:40:37 2003
@@ -498,7 +498,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/anakin b/arch/arm/def-configs/anakin
--- a/arch/arm/def-configs/anakin	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/anakin	Thu May 22 15:40:37 2003
@@ -532,7 +532,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_NFSD_TCP is not set
diff -Nru a/arch/arm/def-configs/assabet b/arch/arm/def-configs/assabet
--- a/arch/arm/def-configs/assabet	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/assabet	Thu May 22 15:40:37 2003
@@ -681,7 +681,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/badge4 b/arch/arm/def-configs/badge4
--- a/arch/arm/def-configs/badge4	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/badge4	Thu May 22 15:40:37 2003
@@ -867,7 +867,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=m
diff -Nru a/arch/arm/def-configs/cerfcube b/arch/arm/def-configs/cerfcube
--- a/arch/arm/def-configs/cerfcube	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/cerfcube	Thu May 22 15:40:37 2003
@@ -670,7 +670,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/cerfpda b/arch/arm/def-configs/cerfpda
--- a/arch/arm/def-configs/cerfpda	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/cerfpda	Thu May 22 15:40:37 2003
@@ -708,7 +708,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/cerfpod b/arch/arm/def-configs/cerfpod
--- a/arch/arm/def-configs/cerfpod	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/cerfpod	Thu May 22 15:40:37 2003
@@ -672,7 +672,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/clps7500 b/arch/arm/def-configs/clps7500
--- a/arch/arm/def-configs/clps7500	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/clps7500	Thu May 22 15:40:37 2003
@@ -436,7 +436,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/arm/def-configs/ebsa110 b/arch/arm/def-configs/ebsa110
--- a/arch/arm/def-configs/ebsa110	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/ebsa110	Thu May 22 15:40:37 2003
@@ -551,7 +551,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/edb7211 b/arch/arm/def-configs/edb7211
--- a/arch/arm/def-configs/edb7211	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/edb7211	Thu May 22 15:40:37 2003
@@ -353,7 +353,6 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/arm/def-configs/epxa10db b/arch/arm/def-configs/epxa10db
--- a/arch/arm/def-configs/epxa10db	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/epxa10db	Thu May 22 15:40:37 2003
@@ -485,7 +485,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 # CONFIG_SUNRPC_GSS is not set
diff -Nru a/arch/arm/def-configs/flexanet b/arch/arm/def-configs/flexanet
--- a/arch/arm/def-configs/flexanet	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/flexanet	Thu May 22 15:40:37 2003
@@ -662,7 +662,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/footbridge b/arch/arm/def-configs/footbridge
--- a/arch/arm/def-configs/footbridge	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/footbridge	Thu May 22 15:40:37 2003
@@ -636,7 +636,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=m
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/fortunet b/arch/arm/def-configs/fortunet
--- a/arch/arm/def-configs/fortunet	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/fortunet	Thu May 22 15:40:37 2003
@@ -479,7 +479,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/arm/def-configs/freebird b/arch/arm/def-configs/freebird
--- a/arch/arm/def-configs/freebird	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/freebird	Thu May 22 15:40:37 2003
@@ -515,7 +515,6 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/arm/def-configs/freebird_new b/arch/arm/def-configs/freebird_new
--- a/arch/arm/def-configs/freebird_new	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/freebird_new	Thu May 22 15:40:37 2003
@@ -535,7 +535,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=m
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=m
diff -Nru a/arch/arm/def-configs/graphicsclient b/arch/arm/def-configs/graphicsclient
--- a/arch/arm/def-configs/graphicsclient	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/graphicsclient	Thu May 22 15:40:37 2003
@@ -604,7 +604,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/graphicsmaster b/arch/arm/def-configs/graphicsmaster
--- a/arch/arm/def-configs/graphicsmaster	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/graphicsmaster	Thu May 22 15:40:37 2003
@@ -579,7 +579,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/h3600 b/arch/arm/def-configs/h3600
--- a/arch/arm/def-configs/h3600	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/h3600	Thu May 22 15:40:37 2003
@@ -673,7 +673,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 CONFIG_NFSD=m
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/huw_webpanel b/arch/arm/def-configs/huw_webpanel
--- a/arch/arm/def-configs/huw_webpanel	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/huw_webpanel	Thu May 22 15:40:37 2003
@@ -359,7 +359,6 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/arm/def-configs/integrator b/arch/arm/def-configs/integrator
--- a/arch/arm/def-configs/integrator	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/integrator	Thu May 22 15:40:37 2003
@@ -563,7 +563,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 CONFIG_NFSD_V3=y
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/iq80310 b/arch/arm/def-configs/iq80310
--- a/arch/arm/def-configs/iq80310	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/iq80310	Thu May 22 15:40:37 2003
@@ -624,7 +624,6 @@
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
 # CONFIG_NFSD is not set
-CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 # CONFIG_SMB_FS is not set
diff -Nru a/arch/arm/def-configs/iq80321 b/arch/arm/def-configs/iq80321
--- a/arch/arm/def-configs/iq80321	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/iq80321	Thu May 22 15:40:37 2003
@@ -587,7 +587,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFSD is not set
-CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 # CONFIG_SMB_FS is not set
diff -Nru a/arch/arm/def-configs/jornada720 b/arch/arm/def-configs/jornada720
--- a/arch/arm/def-configs/jornada720	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/jornada720	Thu May 22 15:40:37 2003
@@ -691,7 +691,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=m
diff -Nru a/arch/arm/def-configs/lart b/arch/arm/def-configs/lart
--- a/arch/arm/def-configs/lart	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/lart	Thu May 22 15:40:37 2003
@@ -678,7 +678,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V3=y
 CONFIG_SUNRPC=m
diff -Nru a/arch/arm/def-configs/lubbock b/arch/arm/def-configs/lubbock
--- a/arch/arm/def-configs/lubbock	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/lubbock	Thu May 22 15:40:37 2003
@@ -722,7 +722,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_NFSD_TCP is not set
diff -Nru a/arch/arm/def-configs/omnimeter b/arch/arm/def-configs/omnimeter
--- a/arch/arm/def-configs/omnimeter	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/omnimeter	Thu May 22 15:40:37 2003
@@ -445,7 +445,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/pangolin b/arch/arm/def-configs/pangolin
--- a/arch/arm/def-configs/pangolin	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/pangolin	Thu May 22 15:40:37 2003
@@ -581,7 +581,6 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/arm/def-configs/pfs168_mqtft b/arch/arm/def-configs/pfs168_mqtft
--- a/arch/arm/def-configs/pfs168_mqtft	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/pfs168_mqtft	Thu May 22 15:40:37 2003
@@ -619,7 +619,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/pfs168_mqvga b/arch/arm/def-configs/pfs168_mqvga
--- a/arch/arm/def-configs/pfs168_mqvga	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/pfs168_mqvga	Thu May 22 15:40:37 2003
@@ -619,7 +619,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/pfs168_sastn b/arch/arm/def-configs/pfs168_sastn
--- a/arch/arm/def-configs/pfs168_sastn	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/pfs168_sastn	Thu May 22 15:40:37 2003
@@ -612,7 +612,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/pfs168_satft b/arch/arm/def-configs/pfs168_satft
--- a/arch/arm/def-configs/pfs168_satft	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/pfs168_satft	Thu May 22 15:40:37 2003
@@ -619,7 +619,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/pleb b/arch/arm/def-configs/pleb
--- a/arch/arm/def-configs/pleb	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/pleb	Thu May 22 15:40:37 2003
@@ -482,7 +482,6 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/arm/def-configs/stork b/arch/arm/def-configs/stork
--- a/arch/arm/def-configs/stork	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/stork	Thu May 22 15:40:37 2003
@@ -672,7 +672,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V3=y
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/system3 b/arch/arm/def-configs/system3
--- a/arch/arm/def-configs/system3	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/system3	Thu May 22 15:40:37 2003
@@ -707,7 +707,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/arm/def-configs/trizeps b/arch/arm/def-configs/trizeps
--- a/arch/arm/def-configs/trizeps	Thu May 22 15:40:37 2003
+++ b/arch/arm/def-configs/trizeps	Thu May 22 15:40:37 2003
@@ -746,7 +746,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_NFSD_V4 is not set
diff -Nru a/arch/arm/defconfig b/arch/arm/defconfig
--- a/arch/arm/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/arm/defconfig	Thu May 22 15:40:37 2003
@@ -442,7 +442,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/cris/defconfig b/arch/cris/defconfig
--- a/arch/cris/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/cris/defconfig	Thu May 22 15:40:37 2003
@@ -464,7 +464,6 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/m68k/defconfig b/arch/m68k/defconfig
--- a/arch/m68k/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/m68k/defconfig	Thu May 22 15:40:37 2003
@@ -246,7 +246,6 @@
 #
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/m68knommu/defconfig b/arch/m68knommu/defconfig
--- a/arch/m68knommu/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/m68knommu/defconfig	Thu May 22 15:40:37 2003
@@ -473,7 +473,6 @@
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_NFSD_V4 is not set
diff -Nru a/arch/mips/defconfig b/arch/mips/defconfig
--- a/arch/mips/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig	Thu May 22 15:40:37 2003
@@ -463,7 +463,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-atlas b/arch/mips/defconfig-atlas
--- a/arch/mips/defconfig-atlas	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-atlas	Thu May 22 15:40:37 2003
@@ -453,7 +453,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-ddb5476 b/arch/mips/defconfig-ddb5476
--- a/arch/mips/defconfig-ddb5476	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-ddb5476	Thu May 22 15:40:37 2003
@@ -487,7 +487,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-ddb5477 b/arch/mips/defconfig-ddb5477
--- a/arch/mips/defconfig-ddb5477	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-ddb5477	Thu May 22 15:40:37 2003
@@ -414,7 +414,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-decstation b/arch/mips/defconfig-decstation
--- a/arch/mips/defconfig-decstation	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-decstation	Thu May 22 15:40:37 2003
@@ -450,7 +450,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/mips/defconfig-ip22 b/arch/mips/defconfig-ip22
--- a/arch/mips/defconfig-ip22	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-ip22	Thu May 22 15:40:37 2003
@@ -463,7 +463,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-it8172 b/arch/mips/defconfig-it8172
--- a/arch/mips/defconfig-it8172	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-it8172	Thu May 22 15:40:37 2003
@@ -566,7 +566,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-malta b/arch/mips/defconfig-malta
--- a/arch/mips/defconfig-malta	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-malta	Thu May 22 15:40:37 2003
@@ -479,7 +479,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-ocelot b/arch/mips/defconfig-ocelot
--- a/arch/mips/defconfig-ocelot	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-ocelot	Thu May 22 15:40:37 2003
@@ -415,7 +415,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-pb1000 b/arch/mips/defconfig-pb1000
--- a/arch/mips/defconfig-pb1000	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-pb1000	Thu May 22 15:40:37 2003
@@ -402,7 +402,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips/defconfig-rm200 b/arch/mips/defconfig-rm200
--- a/arch/mips/defconfig-rm200	Thu May 22 15:40:37 2003
+++ b/arch/mips/defconfig-rm200	Thu May 22 15:40:37 2003
@@ -336,7 +336,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 # CONFIG_NFS_FS is not set
 # CONFIG_NFS_V3 is not set
-# CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_SUNRPC is not set
diff -Nru a/arch/mips64/defconfig b/arch/mips64/defconfig
--- a/arch/mips64/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/mips64/defconfig	Thu May 22 15:40:37 2003
@@ -421,7 +421,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips64/defconfig-ip22 b/arch/mips64/defconfig-ip22
--- a/arch/mips64/defconfig-ip22	Thu May 22 15:40:37 2003
+++ b/arch/mips64/defconfig-ip22	Thu May 22 15:40:37 2003
@@ -425,7 +425,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips64/defconfig-ip27 b/arch/mips64/defconfig-ip27
--- a/arch/mips64/defconfig-ip27	Thu May 22 15:40:37 2003
+++ b/arch/mips64/defconfig-ip27	Thu May 22 15:40:37 2003
@@ -420,7 +420,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/mips64/defconfig-ip32 b/arch/mips64/defconfig-ip32
--- a/arch/mips64/defconfig-ip32	Thu May 22 15:40:37 2003
+++ b/arch/mips64/defconfig-ip32	Thu May 22 15:40:37 2003
@@ -450,7 +450,6 @@
 # CONFIG_CODA_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/parisc/defconfig b/arch/parisc/defconfig
--- a/arch/parisc/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/parisc/defconfig	Thu May 22 15:40:37 2003
@@ -532,7 +532,6 @@
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 CONFIG_NFSD_V3=y
 # CONFIG_NFSD_V4 is not set
diff -Nru a/arch/ppc/configs/FADS_defconfig b/arch/ppc/configs/FADS_defconfig
--- a/arch/ppc/configs/FADS_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/FADS_defconfig	Thu May 22 15:40:37 2003
@@ -408,7 +408,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/IVMS8_defconfig b/arch/ppc/configs/IVMS8_defconfig
--- a/arch/ppc/configs/IVMS8_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/IVMS8_defconfig	Thu May 22 15:40:37 2003
@@ -436,7 +436,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/SM850_defconfig b/arch/ppc/configs/SM850_defconfig
--- a/arch/ppc/configs/SM850_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/SM850_defconfig	Thu May 22 15:40:37 2003
@@ -409,7 +409,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/SPD823TS_defconfig b/arch/ppc/configs/SPD823TS_defconfig
--- a/arch/ppc/configs/SPD823TS_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/SPD823TS_defconfig	Thu May 22 15:40:37 2003
@@ -408,7 +408,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/TQM823L_defconfig b/arch/ppc/configs/TQM823L_defconfig
--- a/arch/ppc/configs/TQM823L_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/TQM823L_defconfig	Thu May 22 15:40:37 2003
@@ -409,7 +409,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/TQM8260_defconfig b/arch/ppc/configs/TQM8260_defconfig
--- a/arch/ppc/configs/TQM8260_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/TQM8260_defconfig	Thu May 22 15:40:37 2003
@@ -395,7 +395,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/TQM850L_defconfig b/arch/ppc/configs/TQM850L_defconfig
--- a/arch/ppc/configs/TQM850L_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/TQM850L_defconfig	Thu May 22 15:40:37 2003
@@ -409,7 +409,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/TQM860L_defconfig b/arch/ppc/configs/TQM860L_defconfig
--- a/arch/ppc/configs/TQM860L_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/TQM860L_defconfig	Thu May 22 15:40:37 2003
@@ -435,7 +435,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/adir_defconfig b/arch/ppc/configs/adir_defconfig
--- a/arch/ppc/configs/adir_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/adir_defconfig	Thu May 22 15:40:37 2003
@@ -592,7 +592,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/ash_defconfig b/arch/ppc/configs/ash_defconfig
--- a/arch/ppc/configs/ash_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/ash_defconfig	Thu May 22 15:40:37 2003
@@ -467,7 +467,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/beech_defconfig b/arch/ppc/configs/beech_defconfig
--- a/arch/ppc/configs/beech_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/beech_defconfig	Thu May 22 15:40:37 2003
@@ -545,7 +545,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/ppc/configs/bseip_defconfig b/arch/ppc/configs/bseip_defconfig
--- a/arch/ppc/configs/bseip_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/bseip_defconfig	Thu May 22 15:40:37 2003
@@ -408,7 +408,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/cedar_defconfig b/arch/ppc/configs/cedar_defconfig
--- a/arch/ppc/configs/cedar_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/cedar_defconfig	Thu May 22 15:40:37 2003
@@ -440,7 +440,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/cpci405_defconfig b/arch/ppc/configs/cpci405_defconfig
--- a/arch/ppc/configs/cpci405_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/cpci405_defconfig	Thu May 22 15:40:37 2003
@@ -474,7 +474,6 @@
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/ep405_defconfig b/arch/ppc/configs/ep405_defconfig
--- a/arch/ppc/configs/ep405_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/ep405_defconfig	Thu May 22 15:40:37 2003
@@ -463,7 +463,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/est8260_defconfig b/arch/ppc/configs/est8260_defconfig
--- a/arch/ppc/configs/est8260_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/est8260_defconfig	Thu May 22 15:40:37 2003
@@ -392,7 +392,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/ev64260_defconfig b/arch/ppc/configs/ev64260_defconfig
--- a/arch/ppc/configs/ev64260_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/ev64260_defconfig	Thu May 22 15:40:37 2003
@@ -490,7 +490,6 @@
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/k2_defconfig b/arch/ppc/configs/k2_defconfig
--- a/arch/ppc/configs/k2_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/k2_defconfig	Thu May 22 15:40:37 2003
@@ -529,7 +529,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/lopec_defconfig b/arch/ppc/configs/lopec_defconfig
--- a/arch/ppc/configs/lopec_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/lopec_defconfig	Thu May 22 15:40:37 2003
@@ -625,7 +625,6 @@
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/mbx_defconfig b/arch/ppc/configs/mbx_defconfig
--- a/arch/ppc/configs/mbx_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/mbx_defconfig	Thu May 22 15:40:37 2003
@@ -402,7 +402,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/mcpn765_defconfig b/arch/ppc/configs/mcpn765_defconfig
--- a/arch/ppc/configs/mcpn765_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/mcpn765_defconfig	Thu May 22 15:40:37 2003
@@ -457,7 +457,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/menf1_defconfig b/arch/ppc/configs/menf1_defconfig
--- a/arch/ppc/configs/menf1_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/menf1_defconfig	Thu May 22 15:40:37 2003
@@ -534,7 +534,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/mvme5100_defconfig b/arch/ppc/configs/mvme5100_defconfig
--- a/arch/ppc/configs/mvme5100_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/mvme5100_defconfig	Thu May 22 15:40:37 2003
@@ -599,7 +599,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/oak_defconfig b/arch/ppc/configs/oak_defconfig
--- a/arch/ppc/configs/oak_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/oak_defconfig	Thu May 22 15:40:37 2003
@@ -405,7 +405,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/pcore_defconfig b/arch/ppc/configs/pcore_defconfig
--- a/arch/ppc/configs/pcore_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/pcore_defconfig	Thu May 22 15:40:37 2003
@@ -581,7 +581,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/pplus_defconfig b/arch/ppc/configs/pplus_defconfig
--- a/arch/ppc/configs/pplus_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/pplus_defconfig	Thu May 22 15:40:37 2003
@@ -598,7 +598,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/prpmc750_defconfig b/arch/ppc/configs/prpmc750_defconfig
--- a/arch/ppc/configs/prpmc750_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/prpmc750_defconfig	Thu May 22 15:40:37 2003
@@ -514,7 +514,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/prpmc800_defconfig b/arch/ppc/configs/prpmc800_defconfig
--- a/arch/ppc/configs/prpmc800_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/prpmc800_defconfig	Thu May 22 15:40:37 2003
@@ -514,7 +514,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/rainier_defconfig b/arch/ppc/configs/rainier_defconfig
--- a/arch/ppc/configs/rainier_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/rainier_defconfig	Thu May 22 15:40:37 2003
@@ -494,7 +494,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/ppc/configs/redwood5_defconfig b/arch/ppc/configs/redwood5_defconfig
--- a/arch/ppc/configs/redwood5_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/redwood5_defconfig	Thu May 22 15:40:37 2003
@@ -437,7 +437,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/redwood6_defconfig b/arch/ppc/configs/redwood6_defconfig
--- a/arch/ppc/configs/redwood6_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/redwood6_defconfig	Thu May 22 15:40:37 2003
@@ -478,7 +478,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 # CONFIG_NFSD_TCP is not set
diff -Nru a/arch/ppc/configs/redwood_defconfig b/arch/ppc/configs/redwood_defconfig
--- a/arch/ppc/configs/redwood_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/redwood_defconfig	Thu May 22 15:40:37 2003
@@ -425,7 +425,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/rpxcllf_defconfig b/arch/ppc/configs/rpxcllf_defconfig
--- a/arch/ppc/configs/rpxcllf_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/rpxcllf_defconfig	Thu May 22 15:40:37 2003
@@ -408,7 +408,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/rpxlite_defconfig b/arch/ppc/configs/rpxlite_defconfig
--- a/arch/ppc/configs/rpxlite_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/rpxlite_defconfig	Thu May 22 15:40:37 2003
@@ -408,7 +408,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/sandpoint_defconfig b/arch/ppc/configs/sandpoint_defconfig
--- a/arch/ppc/configs/sandpoint_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/sandpoint_defconfig	Thu May 22 15:40:37 2003
@@ -587,7 +587,6 @@
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/spruce_defconfig b/arch/ppc/configs/spruce_defconfig
--- a/arch/ppc/configs/spruce_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/spruce_defconfig	Thu May 22 15:40:37 2003
@@ -469,7 +469,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/sycamore_defconfig b/arch/ppc/configs/sycamore_defconfig
--- a/arch/ppc/configs/sycamore_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/sycamore_defconfig	Thu May 22 15:40:37 2003
@@ -460,7 +460,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
 CONFIG_SUNRPC=y
diff -Nru a/arch/ppc/configs/walnut_defconfig b/arch/ppc/configs/walnut_defconfig
--- a/arch/ppc/configs/walnut_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/walnut_defconfig	Thu May 22 15:40:37 2003
@@ -472,7 +472,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/ppc/configs/zx4500_defconfig b/arch/ppc/configs/zx4500_defconfig
--- a/arch/ppc/configs/zx4500_defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/configs/zx4500_defconfig	Thu May 22 15:40:37 2003
@@ -469,7 +469,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
 # CONFIG_NFSD_TCP is not set
diff -Nru a/arch/ppc/defconfig b/arch/ppc/defconfig
--- a/arch/ppc/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/ppc/defconfig	Thu May 22 15:40:37 2003
@@ -748,7 +748,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 CONFIG_NFSD=y
 CONFIG_NFSD_V3=y
 CONFIG_SUNRPC=y
diff -Nru a/arch/ppc/platforms/adir_setup.c b/arch/ppc/platforms/adir_setup.c
--- a/arch/ppc/platforms/adir_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/adir_setup.c	Thu May 22 15:40:37 2003
@@ -115,11 +115,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA1;
-#endif
 
 	/* Identify the system */
 	printk("System Identification: SBS Adirondack - PowerPC 750CXe @ %d Mhz\n", adir_get_cpu_speed()/1000000);
diff -Nru a/arch/ppc/platforms/ev64260_setup.c b/arch/ppc/platforms/ev64260_setup.c
--- a/arch/ppc/platforms/ev64260_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/ev64260_setup.c	Thu May 22 15:40:37 2003
@@ -197,11 +197,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef	CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 	if ( ppc_md.progress )
 		ppc_md.progress("ev64260_setup_arch: find_bridges", 0);
diff -Nru a/arch/ppc/platforms/k2_setup.c b/arch/ppc/platforms/k2_setup.c
--- a/arch/ppc/platforms/k2_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/k2_setup.c	Thu May 22 15:40:37 2003
@@ -180,11 +180,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_HDC1;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/lopec_setup.c b/arch/ppc/platforms/lopec_setup.c
--- a/arch/ppc/platforms/lopec_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/lopec_setup.c	Thu May 22 15:40:37 2003
@@ -316,8 +316,6 @@
 	if (initrd_start)
 		ROOT_DEV = Root_RAM0;
 	else
-#elif defined(CONFIG_ROOT_NFS)
-        	ROOT_DEV = Root_NFS;
 #elif defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
 	        ROOT_DEV = Root_HDA1;
 #else
diff -Nru a/arch/ppc/platforms/mcpn765_setup.c b/arch/ppc/platforms/mcpn765_setup.c
--- a/arch/ppc/platforms/mcpn765_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/mcpn765_setup.c	Thu May 22 15:40:37 2003
@@ -94,11 +94,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef	CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/menf1_setup.c b/arch/ppc/platforms/menf1_setup.c
--- a/arch/ppc/platforms/menf1_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/menf1_setup.c	Thu May 22 15:40:37 2003
@@ -71,11 +71,7 @@
                 ROOT_DEV = Root_RAM0;
         else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_HDA2;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/mvme5100_setup.c b/arch/ppc/platforms/mvme5100_setup.c
--- a/arch/ppc/platforms/mvme5100_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/mvme5100_setup.c	Thu May 22 15:40:37 2003
@@ -79,11 +79,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef	CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/pal4_setup.c b/arch/ppc/platforms/pal4_setup.c
--- a/arch/ppc/platforms/pal4_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/pal4_setup.c	Thu May 22 15:40:37 2003
@@ -120,9 +120,7 @@
 #ifdef CONFIG_BLK_DEV_INITRD
 	if (initrd_start)
 		ROOT_DEV = Root_RAM0;
-	else
 #endif
-		ROOT_DEV = Root_NFS;
 
 	/* The L2 gets disabled in the bootloader, but all the proper
 	   bits should be present from the fw, so just re-enable it */
diff -Nru a/arch/ppc/platforms/pcore_setup.c b/arch/ppc/platforms/pcore_setup.c
--- a/arch/ppc/platforms/pcore_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/pcore_setup.c	Thu May 22 15:40:37 2003
@@ -120,11 +120,7 @@
 		ROOT_DEV = Root_RAM0;
         else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/powerpmc250.c b/arch/ppc/platforms/powerpmc250.c
--- a/arch/ppc/platforms/powerpmc250.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/powerpmc250.c	Thu May 22 15:40:37 2003
@@ -83,11 +83,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 	printk("Force PowerPMC250 port (C) 2001 MontaVista Software, Inc. (source at mvista.com)\n");
 }
diff -Nru a/arch/ppc/platforms/pplus_setup.c b/arch/ppc/platforms/pplus_setup.c
--- a/arch/ppc/platforms/pplus_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/pplus_setup.c	Thu May 22 15:40:37 2003
@@ -120,11 +120,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 	printk(KERN_INFO "Motorola PowerPlus Platform\n");
 	printk(KERN_INFO "Port by MontaVista Software, Inc. (source at mvista.com)\n");
diff -Nru a/arch/ppc/platforms/prep_setup.c b/arch/ppc/platforms/prep_setup.c
--- a/arch/ppc/platforms/prep_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/prep_setup.c	Thu May 22 15:40:37 2003
@@ -767,11 +767,7 @@
 			ROOT_DEV = Root_RAM0;
 		else
 #endif
-#ifdef CONFIG_ROOT_NFS
-			ROOT_DEV = Root_NFS;
-#else
 			ROOT_DEV = Root_SDA2;
-#endif
 		break;
 	}
 
diff -Nru a/arch/ppc/platforms/prpmc750_setup.c b/arch/ppc/platforms/prpmc750_setup.c
--- a/arch/ppc/platforms/prpmc750_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/prpmc750_setup.c	Thu May 22 15:40:37 2003
@@ -87,11 +87,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/prpmc800_setup.c b/arch/ppc/platforms/prpmc800_setup.c
--- a/arch/ppc/platforms/prpmc800_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/prpmc800_setup.c	Thu May 22 15:40:37 2003
@@ -94,11 +94,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA2;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/sandpoint_setup.c b/arch/ppc/platforms/sandpoint_setup.c
--- a/arch/ppc/platforms/sandpoint_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/sandpoint_setup.c	Thu May 22 15:40:37 2003
@@ -154,11 +154,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef	CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_HDA1;
-#endif
 
 	/* Lookup PCI host bridges */
 	sandpoint_find_bridges();
diff -Nru a/arch/ppc/platforms/spruce_setup.c b/arch/ppc/platforms/spruce_setup.c
--- a/arch/ppc/platforms/spruce_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/spruce_setup.c	Thu May 22 15:40:37 2003
@@ -122,11 +122,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#ifdef CONFIG_ROOT_NFS
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA1;
-#endif
 
 #ifdef CONFIG_DUMMY_CONSOLE
 	conswitchp = &dummy_con;
diff -Nru a/arch/ppc/platforms/zx4500_setup.c b/arch/ppc/platforms/zx4500_setup.c
--- a/arch/ppc/platforms/zx4500_setup.c	Thu May 22 15:40:37 2003
+++ b/arch/ppc/platforms/zx4500_setup.c	Thu May 22 15:40:37 2003
@@ -97,11 +97,7 @@
 		ROOT_DEV = Root_RAM0;
 	else
 #endif
-#if	defined(CONFIG_ROOT_NFS)
-		ROOT_DEV = Root_NFS;
-#else
 		ROOT_DEV = Root_SDA1;
-#endif
 
 	/* Get boot string from flash */
 	strncpy(boot_string,
diff -Nru a/arch/sparc/defconfig b/arch/sparc/defconfig
--- a/arch/sparc/defconfig	Thu May 22 15:40:37 2003
+++ b/arch/sparc/defconfig	Thu May 22 15:40:37 2003
@@ -313,7 +313,6 @@
 CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
diff -Nru a/arch/um/config.release b/arch/um/config.release
--- a/arch/um/config.release	Thu May 22 15:40:37 2003
+++ b/arch/um/config.release	Thu May 22 15:40:37 2003
@@ -238,7 +238,6 @@
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
 CONFIG_NFSD=y
 CONFIG_NFSD_V3=y
 CONFIG_SUNRPC=y
diff -Nru a/fs/Kconfig b/fs/Kconfig
--- a/fs/Kconfig	Thu May 22 15:40:37 2003
+++ b/fs/Kconfig	Thu May 22 15:40:37 2003
@@ -1329,17 +1329,6 @@
 	  Enable NFS service over TCP connections.  This the officially
 	  still experimental, but seems to work well.
 
-config ROOT_NFS
-	bool "Root file system on NFS"
-	depends on NFS_FS=y && NFS_FS=n
-	help
-	  If you want your Linux box to mount its whole root file system (the
-	  one containing the directory /) from some other computer over the
-	  net via NFS (presumably because your box doesn't have a hard disk),
-	  say Y. Read <file:Documentation/nfsroot.txt> for details.
-
-	  Most people say N here.
-
 config LOCKD
 	tristate
 	default m if NFS_FS!=y && NFSD!=y && (NFS_FS=m || NFSD=m)
diff -Nru a/fs/nfs/Makefile b/fs/nfs/Makefile
--- a/fs/nfs/Makefile	Thu May 22 15:40:37 2003
+++ b/fs/nfs/Makefile	Thu May 22 15:40:37 2003
@@ -6,7 +6,6 @@
 
 nfs-y 			:= dir.o file.o inode.o nfs2xdr.o pagelist.o \
 			   proc.o read.o symlink.o unlink.o write.o
-nfs-$(CONFIG_ROOT_NFS)	+= nfsroot.o mount_clnt.o      
 nfs-$(CONFIG_NFS_V3)	+= nfs3proc.o nfs3xdr.o
 nfs-$(CONFIG_NFS_V4)	+= nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o \
 			   idmap.o
diff -Nru a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c
--- a/fs/nfs/mount_clnt.c	Thu May 22 15:40:37 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,183 +0,0 @@
-/*
- * linux/fs/nfs/mount_clnt.c
- *
- * MOUNT client to support NFSroot.
- *
- * Copyright (C) 1997, Olaf Kirch <okir at monad.swb.de>
- */
-
-#include <linux/types.h>
-#include <linux/socket.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/uio.h>
-#include <linux/net.h>
-#include <linux/in.h>
-#include <linux/sunrpc/clnt.h>
-#include <linux/sunrpc/xprt.h>
-#include <linux/sunrpc/sched.h>
-#include <linux/nfs_fs.h>
-
-#ifdef RPC_DEBUG
-# define NFSDBG_FACILITY	NFSDBG_ROOT
-#endif
-
-/*
-#define MOUNT_PROGRAM		100005
-#define MOUNT_VERSION		1
-#define MOUNT_MNT		1
-#define MOUNT_UMNT		3
- */
-
-static struct rpc_clnt *	mnt_create(char *, struct sockaddr_in *,
-								int, int);
-struct rpc_program		mnt_program;
-
-struct mnt_fhstatus {
-	unsigned int		status;
-	struct nfs_fh *		fh;
-};
-
-/*
- * Obtain an NFS file handle for the given host and path
- */
-int
-nfsroot_mount(struct sockaddr_in *addr, char *path, struct nfs_fh *fh,
-		int version, int protocol)
-{
-	struct rpc_clnt		*mnt_clnt;
-	struct mnt_fhstatus	result = {
-		.fh		= fh
-	};
-	char			hostname[32];
-	int			status;
-	int			call;
-
-	dprintk("NFS:      nfs_mount(%08x:%s)\n",
-			(unsigned)ntohl(addr->sin_addr.s_addr), path);
-
-	sprintf(hostname, "%u.%u.%u.%u", NIPQUAD(addr->sin_addr.s_addr));
-	if (!(mnt_clnt = mnt_create(hostname, addr, version, protocol)))
-		return -EACCES;
-
-	call = (version == NFS_MNT3_VERSION) ? MOUNTPROC3_MNT : MNTPROC_MNT;
-	status = rpc_call(mnt_clnt, call, path, &result, 0);
-	return status < 0? status : (result.status? -EACCES : 0);
-}
-
-static struct rpc_clnt *
-mnt_create(char *hostname, struct sockaddr_in *srvaddr, int version,
-		int protocol)
-{
-	struct rpc_xprt	*xprt;
-	struct rpc_clnt	*clnt;
-
-	if (!(xprt = xprt_create_proto(protocol, srvaddr, NULL)))
-		return NULL;
-
-	clnt = rpc_create_client(xprt, hostname,
-				&mnt_program, version,
-				RPC_AUTH_NULL);
-	if (!clnt) {
-		xprt_destroy(xprt);
-	} else {
-		clnt->cl_softrtry = 1;
-		clnt->cl_chatty   = 1;
-		clnt->cl_oneshot  = 1;
-		clnt->cl_intr = 1;
-	}
-	return clnt;
-}
-
-/*
- * XDR encode/decode functions for MOUNT
- */
-static int
-xdr_encode_dirpath(struct rpc_rqst *req, u32 *p, const char *path)
-{
-	p = xdr_encode_string(p, path);
-
-	req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
-	return 0;
-}
-
-static int
-xdr_decode_fhstatus(struct rpc_rqst *req, u32 *p, struct mnt_fhstatus *res)
-{
-	struct nfs_fh *fh = res->fh;
-
-	memset((void *)fh, 0, sizeof(*fh));
-	if ((res->status = ntohl(*p++)) == 0) {
-		fh->size = NFS2_FHSIZE;
-		memcpy(fh->data, p, NFS2_FHSIZE);
-	}
-	return 0;
-}
-
-static int
-xdr_decode_fhstatus3(struct rpc_rqst *req, u32 *p, struct mnt_fhstatus *res)
-{
-	struct nfs_fh *fh = res->fh;
-
-	memset((void *)fh, 0, sizeof(*fh));
-	if ((res->status = ntohl(*p++)) == 0) {
-		int size = ntohl(*p++);
-		if (size <= NFS3_FHSIZE) {
-			fh->size = size;
-			memcpy(fh->data, p, size);
-		} else
-			res->status = -EBADHANDLE;
-	}
-	return 0;
-}
-
-#define MNT_dirpath_sz		(1 + 256)
-#define MNT_fhstatus_sz		(1 + 8)
-
-static struct rpc_procinfo	mnt_procedures[] = {
-[MNTPROC_MNT] = {
-	  .p_proc		= MNTPROC_MNT,
-	  .p_encode		= (kxdrproc_t) xdr_encode_dirpath,	
-	  .p_decode		= (kxdrproc_t) xdr_decode_fhstatus,
-	  .p_bufsiz		= MNT_dirpath_sz << 2,
-	},
-};
-
-static struct rpc_procinfo mnt3_procedures[] = {
-[MOUNTPROC3_MNT] = {
-	  .p_proc		= MOUNTPROC3_MNT,
-	  .p_encode		= (kxdrproc_t) xdr_encode_dirpath,
-	  .p_decode		= (kxdrproc_t) xdr_decode_fhstatus3,
-	  .p_bufsiz		= MNT_dirpath_sz << 2,
-	},
-};
-
-
-static struct rpc_version	mnt_version1 = {
-		.number		= 1,
-		.nrprocs 	= 2,
-		.procs 		= mnt_procedures
-};
-
-static struct rpc_version       mnt_version3 = {
-		.number		= 3,
-		.nrprocs	= 2,
-		.procs		= mnt3_procedures
-};
-
-static struct rpc_version *	mnt_version[] = {
-	NULL,
-	&mnt_version1,
-	NULL,
-	&mnt_version3,
-};
-
-static struct rpc_stat		mnt_stats;
-
-struct rpc_program	mnt_program = {
-	.name		= "mount",
-	.number		= NFS_MNT_PROGRAM,
-	.nrvers		= sizeof(mnt_version)/sizeof(mnt_version[0]),
-	.version	= mnt_version,
-	.stats		= &mnt_stats,
-};
diff -Nru a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c
--- a/fs/nfs/nfsroot.c	Thu May 22 15:40:37 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,472 +0,0 @@
-/*
- *  $Id: nfsroot.c,v 1.45 1998/03/07 10:44:46 mj Exp $
- *
- *  Copyright (C) 1995, 1996  Gero Kuhlmann <gero at gkminix.han.de>
- *
- *  Allow an NFS filesystem to be mounted as root. The way this works is:
- *     (1) Use the IP autoconfig mechanism to set local IP addresses and routes.
- *     (2) Handle RPC negotiation with the system which replied to RARP or
- *         was reported as a boot server by BOOTP or manually.
- *     (3) The actual mounting is done later, when init() is running.
- *
- *
- *	Changes:
- *
- *	Alan Cox	:	Removed get_address name clash with FPU.
- *	Alan Cox	:	Reformatted a bit.
- *	Gero Kuhlmann	:	Code cleanup
- *	Michael Rausch  :	Fixed recognition of an incoming RARP answer.
- *	Martin Mares	: (2.0)	Auto-configuration via BOOTP supported.
- *	Martin Mares	:	Manual selection of interface & BOOTP/RARP.
- *	Martin Mares	:	Using network routes instead of host routes,
- *				allowing the default configuration to be used
- *				for normal operation of the host.
- *	Martin Mares	:	Randomized timer with exponential backoff
- *				installed to minimize network congestion.
- *	Martin Mares	:	Code cleanup.
- *	Martin Mares	: (2.1)	BOOTP and RARP made configuration options.
- *	Martin Mares	:	Server hostname generation fixed.
- *	Gerd Knorr	:	Fixed wired inode handling
- *	Martin Mares	: (2.2)	"0.0.0.0" addresses from command line ignored.
- *	Martin Mares	:	RARP replies not tested for server address.
- *	Gero Kuhlmann	: (2.3) Some bug fixes and code cleanup again (please
- *				send me your new patches _before_ bothering
- *				Linus so that I don' always have to cleanup
- *				_afterwards_ - thanks)
- *	Gero Kuhlmann	:	Last changes of Martin Mares undone.
- *	Gero Kuhlmann	: 	RARP replies are tested for specified server
- *				again. However, it's now possible to have
- *				different RARP and NFS servers.
- *	Gero Kuhlmann	:	"0.0.0.0" addresses from command line are
- *				now mapped to INADDR_NONE.
- *	Gero Kuhlmann	:	Fixed a bug which prevented BOOTP path name
- *				from being used (thanks to Leo Spiekman)
- *	Andy Walker	:	Allow to specify the NFS server in nfs_root
- *				without giving a path name
- *	Swen Th#include <linux/inet.h>
-#include <linux/root_dev.h>
-#include <net/ipconfig.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 */
-#define NFS_ROOT		"/tftpboot/%s"
-
-/* Parameters passed from the kernel command line */
-static char nfs_root_name[256] __initdata = "";
-
-/* Address of NFS server */
-static __u32 servaddr __initdata = 0;
-
-/* Name of directory to mount */
-static char nfs_path[NFS_MAXPATHLEN] __initdata = { 0, };
-
-/* NFS-related data */
-static struct nfs_mount_data nfs_data __initdata = { 0, };/* NFS mount info */
-static int nfs_port __initdata = 0;		/* Port to connect to for NFS */
-static int mount_port __initdata = 0;		/* Mount daemon port number */
-
-
-/***************************************************************************
-
-			     Parsing of options
-
- ***************************************************************************/
-
-/*
- *  The following integer options are recognized
- */
-static struct nfs_int_opts {
-	char *name;
-	int  *val;
-} root_int_opts[] __initdata = {
-	{ "port",	&nfs_port },
-	{ "rsize",	&nfs_data.rsize },
-	{ "wsize",	&nfs_data.wsize },
-	{ "timeo",	&nfs_data.timeo },
-	{ "retrans",	&nfs_data.retrans },
-	{ "acregmin",	&nfs_data.acregmin },
-	{ "acregmax",	&nfs_data.acregmax },
-	{ "acdirmin",	&nfs_data.acdirmin },
-	{ "acdirmax",	&nfs_data.acdirmax },
-	{ NULL,		NULL }
-};
-
-
-/*
- *  And now the flag options
- */
-static struct nfs_bool_opts {
-	char *name;
-	int  and_mask;
-	int  or_mask;
-} root_bool_opts[] __initdata = {
-	{ "soft",	~NFS_MOUNT_SOFT,	NFS_MOUNT_SOFT },
-	{ "hard",	~NFS_MOUNT_SOFT,	0 },
-	{ "intr",	~NFS_MOUNT_INTR,	NFS_MOUNT_INTR },
-	{ "nointr",	~NFS_MOUNT_INTR,	0 },
-	{ "posix",	~NFS_MOUNT_POSIX,	NFS_MOUNT_POSIX },
-	{ "noposix",	~NFS_MOUNT_POSIX,	0 },
-	{ "cto",	~NFS_MOUNT_NOCTO,	0 },
-	{ "nocto",	~NFS_MOUNT_NOCTO,	NFS_MOUNT_NOCTO },
-	{ "ac",		~NFS_MOUNT_NOAC,	0 },
-	{ "noac",	~NFS_MOUNT_NOAC,	NFS_MOUNT_NOAC },
-	{ "lock",	~NFS_MOUNT_NONLM,	0 },
-	{ "nolock",	~NFS_MOUNT_NONLM,	NFS_MOUNT_NONLM },
-#ifdef CONFIG_NFS_V3
-	{ "v2",		~NFS_MOUNT_VER3,	0 },
-	{ "v3",		~NFS_MOUNT_VER3,	NFS_MOUNT_VER3 },
-#endif
-	{ "udp",	~NFS_MOUNT_TCP,		0 },
-	{ "tcp",	~NFS_MOUNT_TCP,		NFS_MOUNT_TCP },
-	{ "broken_suid",~NFS_MOUNT_BROKEN_SUID,	NFS_MOUNT_BROKEN_SUID },
-	{ NULL,		0,			0 }
-};
-
-
-/*
- *  Extract IP address from the parameter string if needed. Note that we
- *  need to have root_server_addr set _before_ IPConfig gets called as it
- *  can override it.
- */
-static void __init root_nfs_parse_addr(char *name)
-{
-	int octets = 0;
-	char *cp, *cq;
-
-	cp = cq = name;
-	while (octets < 4) {
-		while (*cp >= '0' && *cp <= '9')
-			cp++;
-		if (cp == cq || cp - cq > 3)
-			break;
-		if (*cp == '.' || octets == 3)
-			octets++;
-		if (octets < 4)
-			cp++;
-		cq = cp;
-	}
-	if (octets == 4 && (*cp == ':' || *cp == '\0')) {
-		if (*cp == ':')
-			*cp++ = '\0';
-		root_server_addr = in_aton(name);
-		strcpy(name, cp);
-	}
-}
-
-
-/*
- *  Parse option string.
- */
-static void __init root_nfs_parse(char *name, char *buf)
-{
-	char *options, *val, *cp;
-
-	if ((options = strchr(name, ','))) {
-		*options++ = 0;
-		while ((cp = strsep(&options, ",")) != NULL) {
-			if (!*cp)
-				continue;
-			if ((val = strchr(cp, '='))) {
-				struct nfs_int_opts *opts = root_int_opts;
-				*val++ = '\0';
-				while (opts->name && strcmp(opts->name, cp))
-					opts++;
-				if (opts->name)
-					*(opts->val) = (int) simple_strtoul(val, NULL, 10);
-			} else {
-				struct nfs_bool_opts *opts = root_bool_opts;
-				while (opts->name && strcmp(opts->name, cp))
-					opts++;
-				if (opts->name) {
-					nfs_data.flags &= opts->and_mask;
-					nfs_data.flags |= opts->or_mask;
-				}
-			}
-		}
-	}
-	if (name[0] && strcmp(name, "default")) {
-		strncpy(buf, name, NFS_MAXPATHLEN-1);
-		buf[NFS_MAXPATHLEN-1] = 0;
-	}
-}
-
-
-/*
- *  Prepare the NFS data structure and parse all options.
- */
-static int __init root_nfs_name(char *name)
-{
-	char buf[NFS_MAXPATHLEN];
-	char *cp;
-
-	/* Set some default values */
-	memset(&nfs_data, 0, sizeof(nfs_data));
-	nfs_port          = -1;
-	nfs_data.version  = NFS_MOUNT_VERSION;
-	nfs_data.flags    = NFS_MOUNT_NONLM;	/* No lockd in nfs root yet */
-	nfs_data.rsize    = NFS_DEF_FILE_IO_BUFFER_SIZE;
-	nfs_data.wsize    = NFS_DEF_FILE_IO_BUFFER_SIZE;
-	nfs_data.bsize	  = 0;
-	nfs_data.timeo    = 7;
-	nfs_data.retrans  = 3;
-	nfs_data.acregmin = 3;
-	nfs_data.acregmax = 60;
-	nfs_data.acdirmin = 30;
-	nfs_data.acdirmax = 60;
-	strcpy(buf, NFS_ROOT);
-
-	/* Process options received from the remote server */
-	root_nfs_parse(root_server_path, buf);
-
-	/* Override them by options set on kernel command-line */
-	root_nfs_parse(name, buf);
-
-	cp = system_utsname.nodename;
-	if (strlen(buf) + strlen(cp) > NFS_MAXPATHLEN) {
-		printk(KERN_ERR "Root-NFS: Pathname for remote directory too long.\n");
-		return -1;
-	}
-	sprintf(nfs_path, buf, cp);
-
-	return 1;
-}
-
-
-/*
- *  Get NFS server address.
- */
-static int __init root_nfs_addr(void)
-{
-	if ((servaddr = root_server_addr) == INADDR_NONE) {
-		printk(KERN_ERR "Root-NFS: No NFS server available, giving up.\n");
-		return -1;
-	}
-
-	snprintf(nfs_data.hostname, sizeof(nfs_data.hostname),
-		 "%u.%u.%u.%u", NIPQUAD(servaddr));
-	return 0;
-}
-
-/*
- *  Tell the user what's going on.
- */
-#ifdef NFSROOT_DEBUG
-static void __init root_nfs_print(void)
-{
-	printk(KERN_NOTICE "Root-NFS: Mounting %s on server %s as root\n",
-		nfs_path, nfs_data.hostname);
-	printk(KERN_NOTICE "Root-NFS:     rsize = %d, wsize = %d, timeo = %d, retrans = %d\n",
-		nfs_data.rsize, nfs_data.wsize, nfs_data.timeo, nfs_data.retrans);
-	printk(KERN_NOTICE "Root-NFS:     acreg (min,max) = (%d,%d), acdir (min,max) = (%d,%d)\n",
-		nfs_data.acregmin, nfs_data.acregmax,
-		nfs_data.acdirmin, nfs_data.acdirmax);
-	printk(KERN_NOTICE "Root-NFS:     nfsd port = %d, mountd port = %d, flags = %08x\n",
-		nfs_port, mount_port, nfs_data.flags);
-}
-#endif
-
-
-int __init root_nfs_init(void)
-{
-#ifdef NFSROOT_DEBUG
-	nfs_debug |= NFSDBG_ROOT;
-#endif
-
-	/*
-	 * Decode the root directory path name and NFS options from
-	 * the kernel command line. This has to go here in order to
-	 * be able to use the client IP address for the remote root
-	 * directory (necessary for pure RARP booting).
-	 */
-	if (root_nfs_name(nfs_root_name) < 0 ||
-	    root_nfs_addr() < 0)
-		return -1;
-
-#ifdef NFSROOT_DEBUG
-	root_nfs_print();
-#endif
-
-	return 0;
-}
-
-
-/*
- *  Parse NFS server and directory information passed on the kernel
- *  command line.
- */
-int __init nfs_root_setup(char *line)
-{
-	ROOT_DEV = Root_NFS;
-	if (line[0] == '/' || line[0] == ',' || (line[0] >= '0' && line[0] <= '9')) {
-		strncpy(nfs_root_name, line, sizeof(nfs_root_name));
-		nfs_root_name[sizeof(nfs_root_name)-1] = '\0';
-	} else {
-		int n = strlen(line) + strlen(NFS_ROOT);
-		if (n >= sizeof(nfs_root_name))
-			line[sizeof(nfs_root_name) - strlen(NFS_ROOT) - 1] = '\0';
-		sprintf(nfs_root_name, NFS_ROOT, line);
-	}
-	root_nfs_parse_addr(nfs_root_name);
-	return 1;
-}
-
-__setup("nfsroot=", nfs_root_setup);
-
-/***************************************************************************
-
-	       Routines to actually mount the root directory
-
- ***************************************************************************/
-
-/*
- *  Construct sockaddr_in from address and port number.
- */
-static inline void
-set_sockaddr(struct sockaddr_in *sin, __u32 addr, __u16 port)
-{
-	sin->sin_family = AF_INET;
-	sin->sin_addr.s_addr = addr;
-	sin->sin_port = port;
-}
-
-/*
- *  Query server portmapper for the port of a daemon program.
- */
-static int __init root_nfs_getport(int program, int version, int proto)
-{
-	struct sockaddr_in sin;
-
-	printk(KERN_NOTICE "Looking up port of RPC %d/%d on %u.%u.%u.%u\n",
-		program, version, NIPQUAD(servaddr));
-	set_sockaddr(&sin, servaddr, 0);
-	return rpc_getport_external(&sin, program, version, proto);
-}
-
-
-/*
- *  Use portmapper to find mountd and nfsd port numbers if not overriden
- *  by the user. Use defaults if portmapper is not available.
- *  XXX: Is there any nfs server with no portmapper?
- */
-static int __init root_nfs_ports(void)
-{
-	int port;
-	int nfsd_ver, mountd_ver;
-	int nfsd_port, mountd_port;
-	int proto;
-
-	if (nfs_data.flags & NFS_MOUNT_VER3) {
-		nfsd_ver = NFS3_VERSION;
-		mountd_ver = NFS_MNT3_VERSION;
-		nfsd_port = NFS_PORT;
-		mountd_port = NFS_MNT_PORT;
-	} else {
-		nfsd_ver = NFS2_VERSION;
-		mountd_ver = NFS_MNT_VERSION;
-		nfsd_port = NFS_PORT;
-		mountd_port = NFS_MNT_PORT;
-	}
-
-	proto = (nfs_data.flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP;
-
-	if (nfs_port < 0) {
-		if ((port = root_nfs_getport(NFS_PROGRAM, nfsd_ver, proto)) < 0) {
-			printk(KERN_ERR "Root-NFS: Unable to get nfsd port "
-					"number from server, using default\n");
-			port = nfsd_port;
-		}
-		nfs_port = htons(port);
-		dprintk("Root-NFS: Portmapper on server returned %d "
-			"as nfsd port\n", port);
-	}
-
-	if ((port = root_nfs_getport(NFS_MNT_PROGRAM, mountd_ver, proto)) < 0) {
-		printk(KERN_ERR "Root-NFS: Unable to get mountd port "
-				"number from server, using default\n");
-		port = mountd_port;
-	}
-	mount_port = htons(port);
-	dprintk("Root-NFS: mountd port is %d\n", port);
-
-	return 0;
-}
-
-
-/*
- *  Get a file handle from the server for the directory which is to be
- *  mounted.
- */
-static int __init root_nfs_get_handle(void)
-{
-	struct sockaddr_in sin;
-	int status;
-	int protocol = (nfs_data.flags & NFS_MOUNT_TCP) ?
-					IPPROTO_TCP : IPPROTO_UDP;
-	int version = (nfs_data.flags & NFS_MOUNT_VER3) ?
-					NFS_MNT3_VERSION : NFS_MNT_VERSION;
-
-	set_sockaddr(&sin, servaddr, mount_port);
-	status = nfsroot_mount(&sin, nfs_path, &nfs_data.root,
-							version, protocol);
-	if (status < 0)
-		printk(KERN_ERR "Root-NFS: Server returned error %d "
-				"while mounting %s\n", status, nfs_path);
-
-	return status;
-}
-
-/*
- *  Get the NFS port numbers and file handle, and return the prepared 'data'
- *  argument for mount() if everything went OK. Return NULL otherwise.
- */
-void * __init nfs_root_data(void)
-{
-	if (root_nfs_init() < 0
-	 || root_nfs_ports() < 0
-	 || root_nfs_get_handle() < 0)
-		return NULL;
-	set_sockaddr((struct sockaddr_in *) &nfs_data.addr, servaddr, nfs_port);
-	return (void*)&nfs_data;
-}
diff -Nru a/include/linux/root_dev.h b/include/linux/root_dev.h
--- a/include/linux/root_dev.h	Thu May 22 15:40:37 2003
+++ b/include/linux/root_dev.h	Thu May 22 15:40:37 2003
@@ -2,7 +2,7 @@
 #define _ROOT_DEV_H_
 
 enum {
-	Root_NFS = MKDEV(UNNAMED_MAJOR, 255),
+	Root_InitRamFS = MKDEV(UNNAMED_MAJOR, 255),
 	Root_RAM0 = MKDEV(RAMDISK_MAJOR, 0),
 	Root_RAM1 = MKDEV(RAMDISK_MAJOR, 1),
 	Root_FD0 = MKDEV(FLOPPY_MAJOR, 0),
diff -Nru a/init/do_mounts.c b/init/do_mounts.c
--- a/init/do_mounts.c	Thu May 22 15:40:37 2003
+++ b/init/do_mounts.c	Thu May 22 15:40:37 2003
@@ -6,10 +6,6 @@
 #include <linux/root_dev.h>
 #include <linux/security.h>
 
-#include <linux/nfs_fs.h>
-#include <linux/nfs_fs_sb.h>
-#include <linux/nfs_mount.h>
-
 #include "do_mounts.h"
 
 extern int get_filesystem_list(char * buf);
@@ -103,7 +99,8 @@
  *	Convert a name into device number.  We accept the following variants:
  *
  *	1) device number in hexadecimal	represents itself
- *	2) /dev/nfs represents Root_NFS (0xff)
+ *	2) initramfs indicates we're using initramfs, and don't need to mount
+ *	   (/dev/nfs is accepted as a synonym, for backwards compatibility)
  *	3) /dev/<disk_name> represents the device number of disk
  *	4) /dev/<disk_name><decimal> represents the device number
  *         of partition - device number of disk plus the partition number
@@ -125,6 +122,11 @@
 	dev_t res = 0;
 	int part;
 
+	if (strncmp(name, "initramfs", 9) == 0 || strcmp(name, "/dev/nfs") == 0) {
+		ROOT_DEV = Root_InitRamFS;
+		goto nada;
+	}
+
 	sys_mkdir("/sys", 0700);
 	if (sys_mount("sysfs", "/sys", "sysfs", 0, NULL) < 0)
 		goto out;
@@ -136,9 +138,6 @@
 		goto done;
 	}
 	name += 5;
-	res = Root_NFS;
-	if (strcmp(name, "nfs") == 0)
-		goto done;
 
 	if (strlen(name) > 31)
 		goto fail;
@@ -168,6 +167,7 @@
 	sys_umount("/sys", 0);
 out:
 	sys_rmdir("/sys");
+nada:
 	return res;
 fail:
 	res = (dev_t) 0;
@@ -275,19 +275,6 @@
 	putname(fs_names);
 }
  
-#ifdef CONFIG_ROOT_NFS
-static int __init mount_nfs_root(void)
-{
-	void *data = nfs_root_data();
-
-	create_dev("/dev/root", ROOT_DEV, NULL);
-	if (data &&
-	    do_mount_root("/dev/root", "nfs", root_mountflags, data) == 0)
-		return 1;
-	return 0;
-}
-#endif
-
 #if defined(CONFIG_BLK_DEV_RAM) || defined(CONFIG_BLK_DEV_FD)
 void __init change_floppy(char *fmt, ...)
 {
@@ -320,15 +307,6 @@
 
 void __init mount_root(void)
 {
-#ifdef CONFIG_ROOT_NFS
-	if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) {
-		if (mount_nfs_root())
-			return;
-
-		printk(KERN_ERR "VFS: Unable to mount root fs via NFS, trying floppy.\n");
-		ROOT_DEV = Root_FD0;
-	}
-#endif
 #ifdef CONFIG_BLK_DEV_FD
 	if (MAJOR(ROOT_DEV) == FLOPPY_MAJOR) {
 		/* rd_doload is 2 for a dual initrd/ramload setup */
@@ -352,10 +330,6 @@
 {
 	int is_floppy;
 
-	mount_devfs();
-
-	md_run_setup();
-
 	if (saved_root_name[0]) {
 		root_device_name = saved_root_name;
 		ROOT_DEV = name_to_dev_t(root_device_name);
@@ -363,6 +337,13 @@
 			root_device_name += 5;
 	}
 
+	if (ROOT_DEV == Root_InitRamFS)
+		goto done;
+
+	mount_devfs();
+
+	md_run_setup();
+
 	is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR;
 
 	/* This has to be before mounting root, because even readonly mount of reiserfs would replay
@@ -382,5 +363,7 @@
 	sys_chroot(".");
 	security_sb_post_mountroot();
 	mount_devfs_fs ();
+done:
+	return;
 }
 
diff -Nru a/kernel/sysctl.c b/kernel/sysctl.c
--- a/kernel/sysctl.c	Thu May 22 15:40:37 2003
+++ b/kernel/sysctl.c	Thu May 22 15:40:37 2003
@@ -37,10 +37,6 @@
 #include <linux/security.h>
 #include <asm/uaccess.h>
 
-#ifdef CONFIG_ROOT_NFS
-#include <linux/nfs_fs.h>
-#endif
-
 #if defined(CONFIG_SYSCTL)
 
 /* External variables not in a header file. */
diff -Nru a/net/sunrpc/pmap_clnt.c b/net/sunrpc/pmap_clnt.c
--- a/net/sunrpc/pmap_clnt.c	Thu May 22 15:40:37 2003
+++ b/net/sunrpc/pmap_clnt.c	Thu May 22 15:40:37 2003
@@ -92,39 +92,6 @@
 	task->tk_action = NULL;
 }
 
-#ifdef CONFIG_ROOT_NFS
-int
-rpc_getport_external(struct sockaddr_in *sin, __u32 prog, __u32 vers, int prot)
-{
-	struct rpc_portmap map = {
-		.pm_prog	= prog,
-		.pm_vers	= vers,
-		.pm_prot	= prot,
-		.pm_port	= 0
-	};
-	struct rpc_clnt	*pmap_clnt;
-	char		hostname[32];
-	int		status;
-
-	dprintk("RPC:      rpc_getport_external(%u.%u.%u.%u, %d, %d, %d)\n",
-			NIPQUAD(sin->sin_addr.s_addr), prog, vers, prot);
-
-	sprintf(hostname, "%u.%u.%u.%u", NIPQUAD(sin->sin_addr.s_addr));
-	if (!(pmap_clnt = pmap_create(hostname, sin, prot)))
-		return -EACCES;
-
-	/* Setup the call info struct */
-	status = rpc_call(pmap_clnt, PMAP_GETPORT, &map, &map.pm_port, 0);
-
-	if (status >= 0) {
-		if (map.pm_port != 0)
-			return map.pm_port;
-		status = -EACCES;
-	}
-	return status;
-}
-#endif
-
 static void
 pmap_getport_done(struct rpc_task *task)
 {





More information about the klibc mailing list