git: NFS - Fix numerous issues with NFS root mounts, primarily for vkernels

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Oct 9 18:04:34 PDT 2009


commit b9a7a2bd9ad2f9f23579d9721b65ab0daecd7486
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Oct 9 17:56:34 2009 -0700

    NFS - Fix numerous issues with NFS root mounts, primarily for vkernels
    
    vkernels do not inherit BOOTP data from PXE and because of this a number
    of code paths are run which are not run in non-vkernel NFS mounts.
    
    * Fix a kernel memory check that was failing for vkernels and causing a
      panic.
    
    * Change the default BOOTP socket type from UDP to TCP.
    
    * Adjust the default vfs.nfs.maxasyncbio value based on available mbuf
      clusters.  The value will be adjusted down for systems with small
      memory footprints.
    
      Otherwise NFS can trivially run the system out of mbufs.
    
    * Fix bugs in the NFS BIO queueing code related to values of
      vfs.nfs.maxasyncbio lower then the maximum.
    
    * Remove the BOOTP_NFSV3 option when probing for the type of NFS mount
      (V2 or V3).  The BOOTP_NFSV3 kernel option is no longer required for
      root mounts to default to NFSv3.
    
      This also works around a bug related to large write()s with NFSv2 which
      has not yet been found.
    
    Reported-by: Rumko <rumcic at gmail.com>

Summary of changes:
 sys/vfs/nfs/bootp_subr.c   |    8 ++++----
 sys/vfs/nfs/nfs_iod.c      |    2 +-
 sys/vfs/nfs/nfs_mountrpc.c |   14 +++++---------
 sys/vfs/nfs/nfs_socket.c   |    4 ++--
 sys/vfs/nfs/nfs_subs.c     |    8 ++++++++
 sys/vfs/nfs/nfsmountrpc.h  |    2 +-
 sys/vm/pmap.h              |   11 ++++++++++-
 7 files changed, 31 insertions(+), 18 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b9a7a2bd9ad2f9f23579d9721b65ab0daecd7486


-- 
DragonFly BSD source repository





More information about the Commits mailing list