1. 23 10月, 2008 1 次提交
    • C
      NFSD: Fix BUG during NFSD shutdown processing · 1cd9cd16
      Chuck Lever 提交于
      The Linux NFS server can be started via a user-space write to
      /proc/fs/nfs/threads or to /proc/fs/nfs/portlist.  In the first case,
      all default listeners are started (both UDP and TCP).  In the second,
      a listener is started only for one specified transport.
      
      The NFS server has to make sure lockd stays up until the last listener
      transport goes away.  To support both start-up interfaces, it should
      do one lockd_up() for each NFSD listener.
      
      The nfsd_init_socks() function used to do one lockd_up() call for each
      svc_create_xprt().  Recently commit
      26a41409 mistakenly changed
      nfsd_init_socks() to do only one lockd_up() call even though it still
      does two svc_create_xprt() calls.
      
      The end result is a lockd_down() BUG during NFSD shutdown processing
      because nfsd_last_threads() does a lockd_down() call for each entry
      on the sv_permsocks list, but the start-up code doesn't do a matching
      number of lockd_up() calls.
      
      Add a second lockd_up() in nfsd_init_socks() to make sure the number
      of lockd_up() calls matches the number of entries on the NFS servers's
      sv_permsocks list.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      1cd9cd16
  2. 09 10月, 2008 1 次提交
  3. 07 10月, 2008 9 次提交
  4. 05 10月, 2008 3 次提交
  5. 04 10月, 2008 11 次提交
  6. 30 9月, 2008 15 次提交