Btrfs: use ACCESS_ONCE to prevent the optimize accesses to ->last_trans_log_full_commit
authorMiao Xie <miaox@cn.fujitsu.com>
Thu, 20 Feb 2014 10:08:51 +0000 (18:08 +0800)
committerJosef Bacik <jbacik@fb.com>
Mon, 10 Mar 2014 19:16:39 +0000 (15:16 -0400)
commit5c902ba6223f6a6575054226931fafc51314a25f
treedc43b931ac9d6ad7006093db05a8517fadba9320
parent7813b3db0a9ec77ff1f4b3ee3fb4925848395d59
Btrfs: use ACCESS_ONCE to prevent the optimize accesses to ->last_trans_log_full_commit

->last_trans_log_full_commit may be changed by the other tasks without lock,
so we need prevent the compiler from the optimize access just like
tmp = fs_info->last_trans_log_full_commit
if (tmp == ...)
...

<do something>

if (tmp == ...)
...

In fact, we need get the new value of ->last_trans_log_full_commit during
the second access. Fix it by ACCESS_ONCE().

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
fs/btrfs/tree-log.c