Skip to content
  1. Nov 05, 2021
  2. Nov 03, 2021
  3. Nov 01, 2021
  4. Oct 28, 2021
    • Trond Myklebust's avatar
      NFSv4: Fix a regression in nfs_set_open_stateid_locked() · 01d29f87
      Trond Myklebust authored
      If we already hold open state on the client, yet the server gives us a
      completely different stateid to the one we already hold, then we
      currently treat it as if it were an out-of-sequence update, and wait for
      5 seconds for other updates to come in.
      This commit fixes the behaviour so that we immediately start processing
      of the new stateid, and then leave it to the call to
      nfs4_test_and_free_stateid() to decide what to do with the old stateid.
      
      Fixes: b4868b44
      
       ("NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE")
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
      01d29f87
  5. Oct 22, 2021
  6. Oct 21, 2021
  7. Oct 10, 2021
    • Trond Myklebust's avatar
      NFS: Fix deadlocks in nfs_scan_commit_list() · 64a93dbf
      Trond Myklebust authored
      Partially revert commit 2ce209c4 ("NFS: Wait for requests that are
      locked on the commit list"), since it can lead to deadlocks between
      commit requests and nfs_join_page_group().
      For now we should assume that any locked requests on the commit list are
      either about to be removed and committed by another task, or the writes
      they describe are about to be retransmitted. In either case, we should
      not need to worry.
      
      Fixes: 2ce209c4
      
       ("NFS: Wait for requests that are locked on the commit list")
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
      64a93dbf
    • Chuck Lever's avatar
      NFS: Instrument i_size_write() · 110cb2d2
      Chuck Lever authored
      
      
      Generate a trace event whenever the NFS client modifies the size of
      a file. These new events aid troubleshooting workloads that trigger
      races around size updates.
      
      There are four new trace points, all named nfs_size_something so
      they are easy to grep for or enable as a group with a single glob.
      
      Size updated on the server:
      
        kworker/u24:10-194   [010]   369.939174: nfs_size_update:      fileid=00:28:2 fhandle=0x36fbbe51 version=1752899344277980615 cursize=250471 newsize=172083
      
      Server-side size update reported via NFSv3 WCC attributes:
      
                   fsx-1387  [006]   380.760686: nfs_size_wcc:         fileid=00:28:2 fhandle=0x36fbbe51 version=1752899355909932456 cursize=146792 newsize=171216
      
      File has been truncated locally:
      
                   fsx-1387  [007]   369.437421: nfs_size_truncate:    fileid=00:28:2 fhandle=0x36fbbe51 version=1752899231200117272 cursize=215244 newsize=0
      
      File has been extended locally:
      
                   fsx-1387  [007]   369.439213: nfs_size_grow:        fileid=00:28:2 fhandle=0x36fbbe51 version=1752899343704248410 cursize=258048 newsize=262144
      
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
      110cb2d2
    • Chuck Lever's avatar
      SUNRPC: Per-rpc_clnt task PIDs · 0392dd51
      Chuck Lever authored
      
      
      The current range of RPC task PIDs is 0..65535. That's not adequate
      for distinguishing tasks across multiple rpc_clnts running high
      throughput workloads.
      
      To help relieve this situation and to reduce the bottleneck of
      having a single atomic for assigning all RPC task PIDs, assign task
      PIDs per rpc_clnt.
      
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
      0392dd51
    • Chuck Lever's avatar
      NFS: Remove unnecessary TRACE_DEFINE_ENUM()s · 8e09650f
      Chuck Lever authored
      
      
      Clean up: TRACE_DEFINE_ENUM is unnecessary because the target
      symbols are all C macros, not enums.
      
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
      8e09650f
  8. Oct 04, 2021