summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2012-07-30 16:19:28 -0700
committerSage Weil <sage@inktank.com>2012-07-30 18:15:31 -0700
commit6194ea895e447fdf4adfd23f67873a32bf4f15ae (patch)
tree89a9642972fa31892a62665b13881794988f01d4 /fs
parent8c50c817566dfa4581f82373aac39f3e608a7dc8 (diff)
downloadlinux-3.10-6194ea895e447fdf4adfd23f67873a32bf4f15ae.tar.gz
linux-3.10-6194ea895e447fdf4adfd23f67873a32bf4f15ae.tar.bz2
linux-3.10-6194ea895e447fdf4adfd23f67873a32bf4f15ae.zip
libceph: resubmit linger ops when pg mapping changes
The linger op registration (i.e., watch) modifies the object state. As such, the OSD will reply with success if it has already applied without doing the associated side-effects (setting up the watch session state). If we lose the ACK and resubmit, we will see success but the watch will not be correctly registered and we won't get notifies. To fix this, always resubmit the linger op with a new tid. We accomplish this by re-registering as a linger (i.e., 'registered') if we are not yet registered. Then the second loop will treat this just like a normal case of re-registering. This mirrors a similar fix on the userland ceph.git, commit 5dd68b95, and ceph bug #2796. Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Alex Elder <elder@inktank.com> Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions