]> 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)
commitb9d78a392ce92d7f5e280d52669e70b2ed9cce92
treece4cc70f3ecf643d1c63948f902bc135b17750c7
parent076762eb55b127413e866cad1b09981b74151b71
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