]> git.baikalelectronics.ru Git - kernel.git/commit
dm thin: support discards
authorJoe Thornber <ejt@redhat.com>
Wed, 28 Mar 2012 17:41:28 +0000 (18:41 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Wed, 28 Mar 2012 17:41:28 +0000 (18:41 +0100)
commitb279ffb1ca2276b597a6ce4cc4abc63dad466dc8
treece4cc70f3ecf643d1c63948f902bc135b17750c7
parentb52bb3ef9e10276504cfe83d8e80f98801e16a9e
dm thin: support discards

Support discards in the thin target.

On discard the corresponding mapping(s) are removed from the thin
device.  If the associated block(s) are no longer shared the discard
is passed to the underlying device.

All bios other than discards now have an associated deferred_entry
that is saved to the 'all_io_entry' in endio_hook.  When non-discard
IO completes and associated mappings are quiesced any discards that
were deferred, via ds_add_work() in process_discard(), will be queued
for processing by the worker thread.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-thin.c |  173 ++++++++++++++++++++++++++++++++++++++++++++++----
 drivers/md/dm-thin.c |  172 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 158 insertions(+), 14 deletions(-)
drivers/md/dm-thin.c