Skip to content

Commit

Permalink
ceph: fix erroneous cap flush to non-auth mds
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Sage Weil committed Jan 19, 2011
1 parent 50aac4f commit 24be0c4
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions fs/ceph/caps.c
Original file line number Diff line number Diff line change
Expand Up @@ -1658,6 +1658,8 @@ void ceph_check_caps(struct ceph_inode_info *ci, int flags,

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++;
Expand Down

0 comments on commit 24be0c4

Please sign in to comment.