tcmu: fix unmap thread race
authorMike Christie <mchristi@redhat.com>
Tue, 28 Nov 2017 18:40:30 +0000 (12:40 -0600)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 12 Jan 2018 23:07:12 +0000 (15:07 -0800)
commit9972cebb59a653cca735178a70c8ab09a5f4de1a
treeb112dbd69e692dbffe3f2acecc7c888fbfbce7ca
parent89ec9cfd3b644fbc36047e36776509130d2fc1ec
tcmu: fix unmap thread race

If the unmap thread has already run find_free_blocks
but not yet run prepare_to_wait when a wake_up(&unmap_wait)
call is done, the unmap thread is going to miss the wake
call. Instead of adding checks for if new waiters were added
this just has us use a work queue which will run us again
in this type of case.

Signed-off-by: Mike Christie <mchristi@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_user.c