1. 25 1月, 2016 4 次提交
  2. 05 1月, 2016 1 次提交
  3. 01 1月, 2016 1 次提交
  4. 29 12月, 2015 5 次提交
  5. 22 10月, 2015 1 次提交
  6. 26 8月, 2015 2 次提交
  7. 18 8月, 2015 1 次提交
  8. 12 6月, 2015 3 次提交
  9. 19 2月, 2015 1 次提交
  10. 25 11月, 2014 1 次提交
    • W
      NFS: fix subtle change in COMMIT behavior · cb1410c7
      Weston Andros Adamson 提交于
      Recent work in the pgio layer made it possible for there to be more than one
      request per page. This caused a subtle change in commit behavior, because
      write.c:nfs_commit_unstable_pages compares the number of *pages* waiting for
      writeback against the number of requests on a commit list to choose when to
      send a COMMIT in a non-blocking flush.
      
      This is probably hard to hit in normal operation - you have to be using
      rsize/wsize < PAGE_SIZE, or pnfs with lots of boundaries that are not page
      aligned to have a noticeable change in behavior.
      Signed-off-by: NWeston Andros Adamson <dros@primarydata.com>
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      cb1410c7
  11. 13 9月, 2014 1 次提交
    • C
      pnfs: enable CB_NOTIFY_DEVICEID support · 84c9dee3
      Christoph Hellwig 提交于
      This code has been around for a while, but never was enabled, although
      it is in a working shape.
      
      Note that we implement NOTIFY_DEVICEID4_CHANGE identical to
      NOTIFY_DEVICEID4_DELETE.  Given that in either case we can't do anything
      but preventing further lookups of a given device ID there isn't much difference
      in semantics for the two.  For the delete case the server MUST ensure that
      there are no outstanding layouts, while for the change case it doesn't, but
      that has little relevance to the client.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      84c9dee3
  12. 11 9月, 2014 2 次提交
  13. 20 2月, 2014 2 次提交
  14. 04 9月, 2013 1 次提交
  15. 22 8月, 2013 2 次提交
  16. 09 6月, 2013 1 次提交
  17. 21 5月, 2013 1 次提交
    • A
      NFSv4.1 Fix a pNFS session draining deadlock · 774d5f14
      Andy Adamson 提交于
      On a CB_RECALL the callback service thread flushes the inode using
      filemap_flush prior to scheduling the state manager thread to return the
      delegation. When pNFS is used and I/O has not yet gone to the data server
      servicing the inode, a LAYOUTGET can preceed the I/O. Unlike the async
      filemap_flush call, the LAYOUTGET must proceed to completion.
      
      If the state manager starts to recover data while the inode flush is sending
      the LAYOUTGET, a deadlock occurs as the callback service thread holds the
      single callback session slot until the flushing is done which blocks the state
      manager thread, and the state manager thread has set the session draining bit
      which puts the inode flush LAYOUTGET RPC to sleep on the forechannel slot
      table waitq.
      
      Separate the draining of the back channel from the draining of the fore channel
      by moving the NFS4_SESSION_DRAINING bit from session scope into the fore
      and back slot tables.  Drain the back channel first allowing the LAYOUTGET
      call to proceed (and fail) so the callback service thread frees the callback
      slot. Then proceed with draining the forechannel.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      774d5f14
  18. 06 4月, 2013 1 次提交
  19. 15 2月, 2013 1 次提交
    • T
      NFSv4.1: Fix bulk recall and destroy of layouts · fd9a8d71
      Trond Myklebust 提交于
      The current code in pnfs_destroy_all_layouts() assumes that removing
      the layout from the server->layouts list is sufficient to make it
      invisible to other processes. This ignores the fact that most
      users access the layout through the nfs_inode->layout...
      There is further breakage due to lack of reference counting of the
      layouts, meaning that the whole thing Oopses at the drop of a hat.
      
      The code in initiate_bulk_draining() is almost correct, and can be
      used as a model for pnfs_destroy_all_layouts(), so move that
      code to pnfs.c, and refactor the code to allow us to choose between
      a single filesystem bulk recall, and a recall of all layouts.
      Also note that initiate_bulk_draining() currently calls iput() while
      holding locks. Fix that too.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      Cc: stable@vger.kernel.org
      fd9a8d71
  20. 06 1月, 2013 1 次提交
  21. 06 12月, 2012 7 次提交