1. 23 Jul, 2014 2 commits
    • Chuck Lever's avatar
      svcrdma: Double the default credit limit · d9bb5a43
      Chuck Lever authored
      The RDMA credit limit controls how many concurrent RPCs are allowed
      per connection.
      
      An NFS/RDMA client and server exchange their credit limits in the
      RPC/RDMA headers. The Linux client and the Solaris client and server
      allow 32 credits. The Linux server allows only 16, which limits its
      performance.
      
      Set the server's default credit limit to 32, like the other well-
      known implementations, so the out-of-the-shrinkwrap performance of
      the Linux server is better.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      d9bb5a43
    • Jeff Layton's avatar
      nfsd: ensure that st_access_bmap and st_deny_bmap are initialized to 0 · 2f6ce8e7
      Jeff Layton authored
      Open stateids must be initialized with the st_access_bmap and
      st_deny_bmap set to 0, so that nfs4_get_vfs_file can properly record
      their state in old_access_bmap and old_deny_bmap.
      
      This bug was introduced in commit baeb4ff0 (nfsd: make deny mode
      enforcement more efficient and close races in it) and was causing the
      refcounts to end up incorrect when nfs4_get_vfs_file returned an error
      after bumping the refcounts. This made it impossible to unmount the
      underlying filesystem after running pynfs tests that involve deny modes.
      Signed-off-by: default avatarJeff Layton <jlayton@primarydata.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      2f6ce8e7
  2. 22 Jul, 2014 2 commits
    • Chuck Lever's avatar
      svcrdma: Add zero padding if the client doesn't send it · e560e3b5
      Chuck Lever authored
      See RFC 5666 section 3.7: clients don't have to send zero XDR
      padding.
      
      BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=246Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      e560e3b5
    • Jeff Layton's avatar
      nfsd: bump dl_time when unhashing delegation · d55a166c
      Jeff Layton authored
      There's a potential race between a lease break and DELEGRETURN call.
      
      Suppose a lease break comes in and queues the workqueue job for a
      delegation, but it doesn't run just yet. Then, a DELEGRETURN comes in
      finds the delegation and calls destroy_delegation on it to unhash it and
      put its primary reference.
      
      Next, the workqueue job runs and queues the delegation back onto the
      del_recall_lru list, issues the CB_RECALL and puts the final reference.
      With that, the final reference to the delegation is put, but it's still
      on the LRU list.
      
      When we go to unhash a delegation, it's because we intend to get rid of
      it soon afterward, so we don't want lease breaks to mess with it once
      that occurs. Fix this by bumping the dl_time whenever we unhash a
      delegation, to ensure that lease breaks don't monkey with it.
      
      I believe this is a regression due to commit 02e1215f (nfsd: Avoid
      taking state_lock while holding inode lock in nfsd_break_one_deleg).
      Prior to that, the state_lock was held in the lm_break callback itself,
      and that would have prevented this race.
      
      Cc: Trond Myklebust <trond.myklebust@primarydata.com>
      Signed-off-by: default avatarJeff Layton <jlayton@primarydata.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      d55a166c
  3. 21 Jul, 2014 3 commits
  4. 18 Jul, 2014 2 commits
  5. 17 Jul, 2014 5 commits
  6. 16 Jul, 2014 1 commit
  7. 11 Jul, 2014 11 commits
  8. 10 Jul, 2014 14 commits