dm stats: fix possible counter corruption on 32-bit systems
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 13 Sep 2013 21:42:24 +0000 (17:42 -0400)
committerMike Snitzer <snitzer@redhat.com>
Wed, 18 Sep 2013 18:41:06 +0000 (14:41 -0400)
There was a deliberate race condition in dm_stat_for_entry() to avoid the
overhead of disabling and enabling interrupts.  The race could result in
some events not being counted on 64-bit architectures.

However, on 32-bit architectures, operations on long long variables are
not atomic, so the race condition could cause the counter to jump by 2^32.
Such jumps could be disruptive, so we need to do proper locking on 32-bit
architectures.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: Alasdair G. Kergon <agk@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>

No differences found