summaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2011-01-18 08:48:06 -0800
committerSage Weil <sage@newdream.net>2011-01-19 09:23:24 -0800
commit24be0c481067560b11441e794e27f166a3568863 (patch)
treee91a8f77b8ecdacf747e5418c30a1c18dbdc38a3 /fs/ceph
parent50aac4fec503960380ab594a93a6fbfdf3f8915f (diff)
downloadlinux-stable-24be0c481067560b11441e794e27f166a3568863.tar.gz
linux-stable-24be0c481067560b11441e794e27f166a3568863.tar.bz2
linux-stable-24be0c481067560b11441e794e27f166a3568863.zip
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')
-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++;