diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 31d02e91e2be8..d2ee97cd7d14e 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2475,6 +2475,8 @@ static int dm_wait_for_completion(struct mapped_device *md, long task_state)
 	}
 	finish_wait(&md->wait, &wait);
 
+	smp_rmb(); /* paired with atomic_dec_return in end_io_acct */
+
 	return r;
 }