1. 15 6月, 2016 1 次提交
  2. 23 12月, 2015 1 次提交
    • S
      sunrpc: Add a function to close temporary transports immediately · c3d4879e
      Scott Mayhew 提交于
      Add a function svc_age_temp_xprts_now() to close temporary transports
      whose xpt_local matches the address passed in server_addr immediately
      instead of waiting for them to be closed by the timer function.
      
      The function is intended to be used by notifier_blocks that will be
      added to nfsd and lockd that will run when an ip address is deleted.
      
      This will eliminate the ACK storms and client hangs that occur in
      HA-NFS configurations where nfsd & lockd is left running on the cluster
      nodes all the time and the NFS 'service' is migrated back and forth
      within a short timeframe.
      Signed-off-by: NScott Mayhew <smayhew@redhat.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      c3d4879e
  3. 11 8月, 2015 1 次提交
  4. 02 12月, 2014 1 次提交
  5. 30 7月, 2014 1 次提交
  6. 18 7月, 2014 1 次提交
  7. 23 5月, 2014 2 次提交
  8. 22 8月, 2012 3 次提交
  9. 01 2月, 2012 1 次提交
  10. 07 12月, 2011 2 次提交
  11. 01 11月, 2011 1 次提交
    • P
      include: replace linux/module.h with "struct module" wherever possible · de477254
      Paul Gortmaker 提交于
      The <linux/module.h> pretty much brings in the kitchen sink along
      with it, so it should be avoided wherever reasonably possible in
      terms of being included from other commonly used <linux/something.h>
      files, as it results in a measureable increase on compile times.
      
      The worst culprit was probably device.h since it is used everywhere.
      This file also had an implicit dependency/usage of mutex.h which was
      masked by module.h, and is also fixed here at the same time.
      
      There are over a dozen other headers that simply declare the
      struct instead of pulling in the whole file, so follow their lead
      and simply make it a few more.
      
      Most of the implicit dependencies on module.h being present by
      these headers pulling it in have been now weeded out, so we can
      finally make this change with hopefully minimal breakage.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      de477254
  12. 26 1月, 2011 1 次提交
  13. 12 1月, 2011 1 次提交
  14. 07 1月, 2011 1 次提交
  15. 18 12月, 2010 1 次提交
    • N
      sunrpc: remove xpt_pool · 7c96aef7
      NeilBrown 提交于
      The xpt_pool field is only used for reporting BUGs.
      And it isn't used correctly.
      
      In particular, when it is cleared in svc_xprt_received before
      XPT_BUSY is cleared, there is no guarantee that either the
      compiler or the CPU might not re-order to two assignments, just
      setting xpt_pool to NULL after XPT_BUSY is cleared.
      
      If a different cpu were running svc_xprt_enqueue at this moment,
      it might see XPT_BUSY clear and then xpt_pool non-NULL, and
      so BUG.
      
      This could be fixed by calling
        smp_mb__before_clear_bit()
      before the clear_bit.  However as xpt_pool isn't really used,
      it seems safest to simply remove xpt_pool.
      
      Another alternate would be to change the clear_bit to
      clear_bit_unlock, and the test_and_set_bit to test_and_set_bit_lock.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      7c96aef7
  16. 03 11月, 2010 1 次提交
  17. 02 10月, 2010 3 次提交
  18. 27 9月, 2010 1 次提交
  19. 12 9月, 2009 1 次提交
  20. 29 4月, 2009 2 次提交
    • C
      NFSD: Prevent a buffer overflow in svc_xprt_names() · 335c54bd
      Chuck Lever 提交于
      The svc_xprt_names() function can overflow its buffer if it's so near
      the end of the passed in buffer that the "name too long" string still
      doesn't fit.  Of course, it could never tell if it was near the end
      of the passed in buffer, since its only caller passes in zero as the
      buffer length.
      
      Let's make this API a little safer.
      
      Change svc_xprt_names() so it *always* checks for a buffer overflow,
      and change its only caller to pass in the correct buffer length.
      
      If svc_xprt_names() does overflow its buffer, it now fails with an
      ENAMETOOLONG errno, instead of trying to write a message at the end
      of the buffer.  I don't like this much, but I can't figure out a clean
      way that's always safe to return some of the names, *and* an
      indication that the buffer was not long enough.
      
      The displayed error when doing a 'cat /proc/fs/nfsd/portlist' is
      "File name too long".
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      335c54bd
    • C
      SUNRPC: Fix error return value of svc_addr_len() · abc5c44d
      Chuck Lever 提交于
      The svc_addr_len() helper function returns -EAFNOSUPPORT if it doesn't
      recognize the address family of the passed-in socket address.  However,
      the return type of this function is size_t, which means -EAFNOSUPPORT
      is turned into a very large positive value in this case.
      
      The check in svc_udp_recvfrom() to see if the return value is less
      than zero therefore won't work at all.
      
      Additionally, handle_connect_req() passes this value directly to
      memset().  This could cause memset() to clobber a large chunk of memory
      if svc_addr_len() has returned an error.  Currently the address family
      of these addresses, however, is known to be supported long before
      handle_connect_req() is called, so this isn't a real risk.
      
      Change the error return value of svc_addr_len() to zero, which fits in
      the range of size_t, and is safer to pass to memset() directly.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      abc5c44d
  21. 29 3月, 2009 3 次提交
  22. 19 3月, 2009 1 次提交
  23. 31 10月, 2008 1 次提交
  24. 30 10月, 2008 1 次提交
  25. 29 10月, 2008 1 次提交
  26. 02 2月, 2008 6 次提交