summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2013-02-21 10:10:06 -0600
committerAlex Elder <elder@inktank.com>2013-02-25 15:36:50 -0600
commit632b88cadece050ca925d74bda250c4a320c5cc7 (patch)
treecd99c51628ae8ca73fdc34674f139d516215c61d /net
parent4dda41d3d76747414586a4bad5615b550e0986b1 (diff)
downloadlinux-stable-632b88cadece050ca925d74bda250c4a320c5cc7.tar.gz
linux-stable-632b88cadece050ca925d74bda250c4a320c5cc7.tar.bz2
linux-stable-632b88cadece050ca925d74bda250c4a320c5cc7.zip
rbd: barriers are hard
Let's go shopping! I'm afraid this may not have gotten it right: 07741308 rbd: add barriers near done flag operations The smp_wmb() should have been done *before* setting the done flag, to ensure all other data was valid before marking the object request done. Switch to use atomic_inc_return() here to set the done flag, which allows us to verify we don't mark something done more than once. Doing this also implies general barriers before and after the call. And although a read memory barrier might have been sufficient before reading the done flag, convert this to a full memory barrier just to put this issue to bed. This resolves: http://tracker.ceph.com/issues/4238 Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions