dm thin: send event about thin-pool state change _after_ making it
authorMike Snitzer <snitzer@redhat.com>
Tue, 11 Dec 2018 18:31:40 +0000 (13:31 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Dec 2018 18:19:52 +0000 (19:19 +0100)
commit809c692c665d5f4acc20583329b32b8112b30ec9
treebbcf83642e35f3b5185bc63e857cd819b18bd7e9
parentbea8a160c621d19f7f78b13e14e03f4b8e44cd4b
dm thin: send event about thin-pool state change _after_ making it

commit f6c367585d0d851349d3a9e607c43e5bea993fa1 upstream.

Sending a DM event before a thin-pool state change is about to happen is
a bug.  It wasn't realized until it became clear that userspace response
to the event raced with the actual state change that the event was
meant to notify about.

Fix this by first updating internal thin-pool state to reflect what the
DM event is being issued about.  This fixes a long-standing racey/buggy
userspace device-mapper-test-suite 'resize_io' test that would get an
event but not find the state it was looking for -- so it would just go
on to hang because no other events caused the test to reevaluate the
thin-pool's state.

Cc: stable@vger.kernel.org
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-thin.c