1. 29 9月, 2012 17 次提交
  2. 27 9月, 2012 1 次提交
  3. 25 9月, 2012 2 次提交
  4. 12 9月, 2012 1 次提交
  5. 07 9月, 2012 1 次提交
  6. 06 9月, 2012 1 次提交
  7. 05 9月, 2012 3 次提交
  8. 21 8月, 2012 2 次提交
  9. 17 8月, 2012 7 次提交
  10. 09 8月, 2012 1 次提交
  11. 03 8月, 2012 4 次提交
    • B
      pnfs-obj: Better IO pattern in case of unaligned offset · 7de6e284
      Boaz Harrosh 提交于
      Depending on layout and ARCH, ORE has some limits on max IO sizes
      which is communicated on (what else) ore_layout->max_io_length,
      which is always stripe aligned.
      This was considered as the pg_test boundary for splitting and starting
      a new IO.
      
      But in the case of a long IO where the start offset is not aligned
      what would happen is that both end of IO[N] and start of IO[N+1]
      would be unaligned, causing each IO boundary parity unit to be
      calculated and written twice.
      
      So what we do in this patch is split the very start of an unaligned
      IO, up to a stripe boundary, and then next IO's can continue fully
      aligned til the end.
      
      We might be sacrificing the case where the full unaligned IO would
      fit within a single max_io_length, but the sacrifice is well worth
      the elimination of double calculation and parity units IO.
      Actually the sacrificing is marginal and is almost unmeasurable.
      
      TODO:
      	If we know the total expected linear segment that will
      	be received, at pg_init, we could use that information
      	in many places:
      	1. blocks-layout get_layout write segment size
      	2. Better mds-threshold
      	3. In above situation for a better clean split
      
      	I will do this in future submission.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      7de6e284
    • P
      NFS41: add pg_layout_private to nfs_pageio_descriptor · f6166384
      Peng Tao 提交于
      To allow layout driver to pass private information around
      pg_init/pg_doio.
      Signed-off-by: NPeng Tao <tao.peng@emc.com>
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      f6166384
    • I
      pnfs: nfs4_proc_layoutget returns void · 21d1f58a
      Idan Kedar 提交于
      since the only user of nfs4_proc_layoutget is send_layoutget, which
      ignores its return value, there is no reason to return any value.
      Signed-off-by: NIdan Kedar <idank@tonian.com>
      Signed-off-by: NBenny Halevy <bhalevy@tonian.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      21d1f58a
    • 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