summaryrefslogtreecommitdiff
path: root/fs/ceph/caps.c
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2011-01-18 19:48:06 +0300
committerSage Weil <sage@newdream.net>2011-01-19 20:23:24 +0300
commit24be0c481067560b11441e794e27f166a3568863 (patch)
treee91a8f77b8ecdacf747e5418c30a1c18dbdc38a3 /fs/ceph/caps.c
parent50aac4fec503960380ab594a93a6fbfdf3f8915f (diff)
downloadlinux-24be0c481067560b11441e794e27f166a3568863.tar.xz
ceph: fix erroneous cap flush to non-auth mds
The int flushing is global and not clear on each iteration of the loop, which can cause a second flush of caps to any MDSs with ids greater than the auth. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/caps.c')
-rw-r--r--fs/ceph/caps.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index 60d27bc9eb83..f654c7e933ac 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -1658,6 +1658,8 @@ ack:
if (cap == ci->i_auth_cap && ci->i_dirty_caps)
flushing = __mark_caps_flushing(inode, session);
+ else
+ flushing = 0;
mds = cap->mds; /* remember mds, so we don't repeat */
sent++;