dm cache policy smq: handle races with queuing background_work
authorJoe Thornber <ejt@redhat.com>
Wed, 8 Nov 2017 10:56:11 +0000 (05:56 -0500)
committerMike Snitzer <snitzer@redhat.com>
Fri, 10 Nov 2017 20:45:01 +0000 (15:45 -0500)
commit1e72a8e809f030bd4e318a49c497ee38e47e82c1
tree8cac372c0bc3793760bda1f6f54e612974042217
parent233978449074ca7e45d9c959f9ec612d1b852893
dm cache policy smq: handle races with queuing background_work

The background_tracker holds a set of promotions/demotions that the
cache policy wishes the core target to implement.

When adding a new operation to the tracker it's possible that an
operation on the same block is already present (but in practise this
doesn't appear to be happening).  Catch these situations and do the
appropriate cleanup.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-cache-policy-smq.c