diff options
author | Sage Weil <sage@newdream.net> | 2011-01-18 11:48:06 -0500 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2011-01-19 12:23:24 -0500 |
commit | 24be0c481067560b11441e794e27f166a3568863 (patch) | |
tree | e91a8f77b8ecdacf747e5418c30a1c18dbdc38a3 /fs/ceph/caps.c | |
parent | 50aac4fec503960380ab594a93a6fbfdf3f8915f (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.c | 2 |
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++; |