• Joe Thornber's avatar
    dm thin: support discards · 104655fd
    Joe Thornber authored
    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: default avatarJoe Thornber <ejt@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    
    drivers/md/dm-thin.c |  173 ++++++++++++++++++++++++++++++++++++++++++++++----
     drivers/md/dm-thin.c |  172 ++++++++++++++++++++++++++++++++++++++++++++++-----
     1 file changed, 158 insertions(+), 14 deletions(-)
    104655fd
dm-thin.c 63.1 KB