1. 30 5月, 2011 6 次提交
    • B
      pnfs-obj: report errors and .encode_layoutreturn Implementation. · adb58535
      Boaz Harrosh 提交于
      An io_state pre-allocates an error information structure for each
      possible osd-device that might error during IO. When IO is done if all
      was well the io_state is freed. (as today). If the I/O has ended with an
      error, the io_state is queued on a per-layout err_list. When eventually
      encode_layoutreturn() is called, each error is properly encoded on the
      XDR buffer and only then the io_state is removed from err_list and
      de-allocated.
      
      It is up to the io_engine to fill in the segment that fault and the type
      of osd_error that occurred. By calling objlayout_io_set_result() for
      each failing device.
      
      In objio_osd:
      * Allocate io-error descriptors space as part of io_state
      * Use generic objlayout error reporting at end of io.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      adb58535
    • B
      pnfs-obj: osd raid engine read/write implementation · 04f83450
      Boaz Harrosh 提交于
      With the use of the in-kernel osd library. Implement read/write
      of data from/to osd-objects according to information specified
      in the objects-layout.
      
      Support for stripping over mirrors with a received stripe_unit.
      There are however a few constrains which are not supported:
       1. Stripe Unit must be a multiple of PAGE_SIZE
       2. stripe length (stripe_unit * number_of_stripes) can not be
          bigger then 32bit.
      
      Also support raid-groups and partial-layout. Partial-layout is
      when not all the groups are received on the line, addressing
      only a partial range of the file.
      
      TODO:
        Only raid0! raid 4/5/6 support will come at later stage
      
      A none supported layout will send IO through the MDS
      
      [Important fallout from the last rebase]
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      [gfp_flags]
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      04f83450
    • B
      pnfs-obj: define per-inode private structure · e51b841d
      Benny Halevy 提交于
      allocate and deallocate per-inode private pnfs_layout_hdr
      in preparation for I/O implementation.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      e51b841d
    • B
      pnfs-obj: objio_osd device information retrieval and caching · b6c05f16
      Boaz Harrosh 提交于
      When a new layout is received in objio_alloc_lseg all device_ids
      referenced are retrieved. The device information is queried for from MDS
      and then the osd_device is looked-up from the osd-initiator library. The
      devices are cached in a per-mount-point list, for later use. At unmount
      all devices are "put" back to the library.
      
      objlayout_get_deviceinfo(), objlayout_put_deviceinfo() middleware
      API for retrieving device information given a device_id.
      
      TODO: The device cache can get big. Cap its size. Keep an LRU and start
            to return devices which were not used, when list gets to big, or
            when new entries allocation fail.
      
      [pnfs-obj: Bugs in new global-device-cache code]
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      [gfp_flags]
      [use global device cache]
      [use layout driver in global device cache]
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      b6c05f16
    • B
      pnfs-obj: decode layout, alloc/free lseg · 09f5bf4e
      Boaz Harrosh 提交于
      objlayout_alloc_lseg prepares an xdr_stream and calls the
      raid engins objio_alloc_lseg() to allocate a private
      pnfs_layout_segment.
      
      objio_osd.c::objio_alloc_lseg() uses passed xdr_stream to
      decode and store the layout_segment information in an
      objio_segment struct, using the pnfs_osd_xdr.h API for
      the actual parsing the layout xdr.
      
      objlayout_free_lseg calls objio_free_lseg() to free the
      allocated space.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      [gfp_flags]
      [removed "extern" from function definitions]
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      09f5bf4e
    • B
      pnfs-obj: objlayoutdriver module skeleton · c93407d0
      Benny Halevy 提交于
      * Define the PNFS_OBJLAYOUT Kconfig option in the nfs
        master Kconfig file.
      * Add the objlayout driver to the Kernel's Kbuild system.
      * Add the fs/nfs/objlayout/Kbuild file for building the
        objlayoutdriver.ko driver
      * Define fs/nfs/objlayout/objio_osd.c, register the driver on module
        initialization and unregister on exit.
      
      [pnfs-obj: remove of CONFIG_PNFS fallout]
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      [added "unsure" clause]
      [depend on NFS_V4_1]
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      c93407d0
  2. 05 1月, 2011 2 次提交
  3. 10 5月, 2007 1 次提交
  4. 17 2月, 2007 1 次提交
  5. 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