aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/caps.c
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2011-01-18 11:48:06 -0500
committerSage Weil <sage@newdream.net>2011-01-19 12:23:24 -0500
commit24be0c481067560b11441e794e27f166a3568863 (patch)
treee91a8f77b8ecdacf747e5418c30a1c18dbdc38a3 /fs/ceph/caps.c
parent50aac4fec503960380ab594a93a6fbfdf3f8915f (diff)
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:
1658 1658
1659 if (cap == ci->i_auth_cap && ci->i_dirty_caps) 1659 if (cap == ci->i_auth_cap && ci->i_dirty_caps)
1660 flushing = __mark_caps_flushing(inode, session); 1660 flushing = __mark_caps_flushing(inode, session);
1661 else
1662 flushing = 0;
1661 1663
1662 mds = cap->mds; /* remember mds, so we don't repeat */ 1664 mds = cap->mds; /* remember mds, so we don't repeat */
1663 sent++; 1665 sent++;