1. 29 3月, 2012 1 次提交
    • J
      dm thin: fix stacked bi_next usage · 6f94a4c4
      Joe Thornber 提交于
      Avoid using the bi_next field for the holder of a cell when deferring
      bios because a stacked device below might change it.  Store the
      holder in a new field in struct cell instead.
      
      When a cell is created, the bio that triggered creation (the holder) was
      added to the same bio list as subsequent bios.  In some cases we pass
      this holder bio directly to devices underneath.  If those devices use
      the bi_next field there will be trouble...
      
      This also simplifies some code that had to work out which bio was the
      holder.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      6f94a4c4
  2. 01 11月, 2011 1 次提交
    • J
      dm: add thin provisioning target · 991d9fa0
      Joe Thornber 提交于
      Initial EXPERIMENTAL implementation of device-mapper thin provisioning
      with snapshot support.  The 'thin' target is used to create instances of
      the virtual devices that are hosted in the 'thin-pool' target.  The
      thin-pool target provides data sharing among devices.  This sharing is
      made possible using the persistent-data library in the previous patch.
      
      The main highlight of this implementation, compared to the previous
      implementation of snapshots, is that it allows many virtual devices to
      be stored on the same data volume, simplifying administration and
      allowing sharing of data between volumes (thus reducing disk usage).
      
      Another big feature is support for arbitrary depth of recursive
      snapshots (snapshots of snapshots of snapshots ...).  The previous
      implementation of snapshots did this by chaining together lookup tables,
      and so performance was O(depth).  This new implementation uses a single
      data structure so we don't get this degradation with depth.
      
      For further information and examples of how to use this, please read
      Documentation/device-mapper/thin-provisioning.txt
      Signed-off-by: NJoe Thornber <thornber@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      991d9fa0