In the Linux kernel, the following vulnerability has been resolved:
blk-cgroup: fix list corruption from reorder of WRITE ->lqueued
_blkcgrstatflush() can be run anytime, especially when blkcgroupbiostart is being executed.
If WRITE of ->lqueued
is re-ordered with READ of 'bisc->lnode.next' in
the loop of _blkcgrstatflush(), next_bisc
can be assigned with one
stat instance being added in blkcgroupbiostart(), then the local
list in _blkcgrstat_flush() could be corrupted.
Fix the issue by adding one barrier.