1. 03 11月, 2011 6 次提交
    • B
      pnfs-obj: move to ore 03: Remove old raid engine · 04291b62
      Boaz Harrosh 提交于
      Finally remove all the old raid engine, which is by now
      dead code.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      04291b62
    • B
      pnfs-obj: move to ore 02: move to ORE · eecfc631
      Boaz Harrosh 提交于
      In this patch we are actually moving to the ORE.
      (Object Raid Engine).
      
      objio_state holds a pointer to an ore_io_state. Once
      we have an ore_io_state at hand we can call the ore
      for reading/writing. We register on the done path
      to kick off the nfs io_done mechanism.
      
      Again for Ease of reviewing the old code is "#if 0"
      but is not removed so the diff command works better.
      The old code will be removed in the next patch.
      
      fs/exofs/Kconfig::ORE is modified to also be auto-included
      if PNFS_OBJLAYOUT is set. Since we now depend on ORE.
      (See comments in fs/exofs/Kconfig)
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      eecfc631
    • B
      pnfs-obj: move to ore 01: ore_layout & ore_components · af4f5b54
      Boaz Harrosh 提交于
      For Ease of reviewing I split the move to ore into 3 parts
      	move to ore 01: ore_layout & ore_components
      	move to ore 02: move to ORE
      	move to ore 03: Remove old raid engine
      
      This patch modifies the objio_lseg, layout-segment level
      and devices and components arrays to use the ORE types.
      
      Though it will be removed soon, also the raid engine
      is modified to actually compile, possibly run, with
      the new types. So it is the same old raid engine but
      with some new ORE types.
      
      For Ease of reviewing, some of the old code is
      "#if 0" but is not removed so the diff command works
      better. The old code will be removed in the 3rd patch.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      af4f5b54
    • B
      pnfs-obj: Rename objlayout_io_state => objlayout_io_res · e2e04355
      Boaz Harrosh 提交于
      * All instances of objlayout_io_state => objlayout_io_res
      * All instances of state => oir;
      * All instances of ol_state => oir;
      
      Big but nothing to it
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      e2e04355
    • B
      pnfs-obj: Get rid of objlayout_{alloc,free}_io_state · 96218556
      Boaz Harrosh 提交于
      This is part of moving objio_osd to use the ORE.
      
      objlayout_io_state had two functions:
      1. It was used in the error reporting mechanism at layout_return.
         This function is kept intact.
         (Later patch will rename objlayout_io_state => objlayout_io_res)
      2. Carrier of rw io members into the objio_read/write_paglist API.
         This is removed in this patch.
      
      The {r,w}data received from NFS are passed directly to the
      objio_{read,write}_paglist API. The io_engine is now allocating
      it's own IO state as part of the read/write. The minimal
      functionality that was part of the generic allocation is passed
      to the io_engine.
      
      So part of this patch is rename of:
      	ios->ol_state.foo => ios->foo
      
      At objlayout_{read,write}_done an objlayout_io_state is passed that
      denotes the result of the IO. (Hence the later name change).
      If the IO is successful objlayout calls an objio_free_result() API
      immediately (Which for objio_osd causes the release of the io_state).
      If the IO ended in an error it is hanged onto until reported in
      layout_return and is released later through the objio_free_result()
      API. (All this is not new just renamed and cleaned)
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      96218556
    • B
      pnfs-obj: Return PNFS_NOT_ATTEMPTED in case of read/write_pagelist · e6c40fe3
      Boaz Harrosh 提交于
      objlayout driver was always returning PNFS_ATTEMPTED from it's
      read/write_pagelist operations. Even on error. Fix that.
      
      Start by establishing an error return API from io-engine, by
      not returning ssize_t (length-or-error) but returning "int"
      0=OK, 0>Error. And clean up all return types in io-engine.
      
      Then if io-engine returned error return PNFS_NOT_ATTEMPTED
      to generic layer. (With a dprint)
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      e6c40fe3
  2. 04 8月, 2011 2 次提交
    • B
      pnfs-obj: Fix the comp_index != 0 case · 9af7db32
      Boaz Harrosh 提交于
      There were bugs in the case of partial layout where olo_comp_index
      is not zero. This used to work and was tested but one of the later
      cleanup SQUASHMEs broke it and was not tested since.
      
      Also add a dprint that specify those received layout parameters.
      Everything else was already printed.
      
      [Needed in v3.0]
      CC: Stable Tree <stable@kernel.org>
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      9af7db32
    • B
      pnfs-obj: Bug when we are running out of bio · 20618b21
      Boaz Harrosh 提交于
      When we have a situation that the number of pages we want
      to encode is bigger then the size of the bio. (Which can
      currently happen only when all IO is going to a single device
      .e.g group_width==1) then the IO is submitted short and we
      report back only the amount of bytes we actually wrote/read
      and all is fine. BUT ...
      
      There was a bug that the current length counter was advanced
      before the fail to add the extra page, and we come to a situation
      that the CDB length was one-page longer then the actual bio size,
      which is of course rejected by the osd-target.
      
      While here also fix the bio size calculation, in the case
      that we received more then one group of devices.
      
      CC: Stable Tree <stable@kernel.org>
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      20618b21
  3. 16 7月, 2011 1 次提交
  4. 15 7月, 2011 2 次提交
  5. 13 7月, 2011 3 次提交
  6. 21 6月, 2011 1 次提交
    • T
      NFSv4.1: Fix some issues with pnfs_generic_pg_test · 8f7d5efb
      Trond Myklebust 提交于
      1. If the intention is to coalesce requests 'prev' and 'req' then we
         have to ensure at least that we have a layout starting at
         req_offset(prev).
      
      2. If we're only requesting a minimal layout of length desc->pg_count,
         we need to test the length actually returned by the server before
         we allow the coalescing to occur.
      
      3. We need to deal correctly with (pgio->lseg == NULL)
      
      4. Fixup the test guarding the pnfs_update_layout.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      8f7d5efb
  7. 20 6月, 2011 1 次提交
  8. 30 5月, 2011 11 次提交
  9. 05 1月, 2011 2 次提交
  10. 10 5月, 2007 1 次提交
  11. 17 2月, 2007 1 次提交
  12. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4