Files
linux/drivers
Anssi Hannula 44fa816bb7 dm cache: fix race affecting dirty block count
nr_dirty is updated without locking, causing it to drift so that it is
non-zero (either a small positive integer, or a very large one when an
underflow occurs) even when there are no actual dirty blocks.  This was
due to a race between the workqueue and map function accessing nr_dirty
in parallel without proper protection.

People were seeing under runs due to a race on increment/decrement of
nr_dirty, see: https://lkml.org/lkml/2014/6/3/648

Fix this by using an atomic_t for nr_dirty.

Reported-by: roma1390@gmail.com
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org
2014-08-01 12:25:22 -04:00
..
2014-05-27 17:38:11 -07:00
2014-06-26 13:34:15 +01:00
2014-07-25 18:00:23 -07:00
2014-07-15 20:55:15 +02:00
2014-06-17 15:43:48 -07:00
2014-05-26 21:27:09 +02:00
2014-06-26 10:48:23 +01:00
2014-07-11 17:43:13 -07:00
2014-06-23 09:22:48 +03:00
2014-07-01 13:18:38 +03:00