1. 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
  2. 04 1月, 2013 1 次提交
  3. 05 11月, 2012 2 次提交
  4. 01 11月, 2012 1 次提交
  5. 09 10月, 2012 2 次提交
  6. 06 10月, 2012 1 次提交
  7. 05 10月, 2012 2 次提交
  8. 03 10月, 2012 4 次提交
  9. 29 9月, 2012 24 次提交
  10. 03 8月, 2012 1 次提交
    • I
      pnfs: defer release of pages in layoutget · 8554116e
      Idan Kedar 提交于
      we have encountered a bug whereby reading a lot of files (copying
      fedora's /bin) from a pNFS mount and hitting Ctrl+C in the middle caused
      a general protection fault in xdr_shrink_bufhead. this function is
      called when decoding the response from LAYOUTGET. the decoding is done
      by a worker thread, and the caller of LAYOUTGET waits for the worker
      thread to complete.
      
      hitting Ctrl+C caused the synchronous wait to end and the next thing the
      caller does is to free the pages, so when the worker thread calls
      xdr_shrink_bufhead, the pages are gone. therefore, the cleanup of these
      pages has been moved to nfs4_layoutget_release.
      Signed-off-by: NIdan Kedar <idank@tonian.com>
      Signed-off-by: NBenny Halevy <bhalevy@tonian.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      8554116e
  11. 31 7月, 2012 1 次提交