1. 16 Jun, 2015 1 commit
    • Neil Brown's avatar
      SUNRPC: never enqueue a ->rq_cong request on ->sending · 29807318
      Neil Brown authored
      If the sending queue has a task without ->rq_cong set at the front,
      and then a number of tasks with ->rq_cong set such that they use
      the entire congestion window, then the queue deadlocks.  The first
      entry cannot be processed until later entries complete.
      
      This scenario has been seen with a client using UDP to access a server,
      and the network connection breaking for a period of time - it doesn't
      recover.
      
      It never really makes sense for an ->rq_cong request to be on the ->sending
      queue, but it can happen when a request is being retried, and finds
      the transport if locked (XPRT_LOCKED).  In this case we simple call
      __xprt_put_cong() and the deadlock goes away.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      29807318
  2. 11 Jun, 2015 2 commits
  3. 10 Jun, 2015 9 commits
  4. 05 Jun, 2015 3 commits
  5. 02 Jun, 2015 8 commits
  6. 01 Jun, 2015 2 commits
    • Olga Kornievskaia's avatar
      fixing infinite OPEN loop in 4.0 stateid recovery · e8d975e7
      Olga Kornievskaia authored
      Problem: When an operation like WRITE receives a BAD_STATEID, even though
      recovery code clears the RECLAIM_NOGRACE recovery flag before recovering
      the open state, because of clearing delegation state for the associated
      inode, nfs_inode_find_state_and_recover() gets called and it makes the
      same state with RECLAIM_NOGRACE flag again. As a results, when we restart
      looking over the open states, we end up in the infinite loop instead of
      breaking out in the next test of state flags.
      
      Solution: unset the RECLAIM_NOGRACE set because of
      calling of nfs_inode_find_state_and_recover() after returning from calling
      recover_open() function.
      Signed-off-by: default avatarOlga Kornievskaia <kolga@netapp.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      e8d975e7
    • Linus Torvalds's avatar
      Linux 4.1-rc6 · c65b99f0
      Linus Torvalds authored
      c65b99f0
  7. 31 May, 2015 13 commits
  8. 30 May, 2015 2 commits