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>
This commit is contained in:
Sage Weil 2011-01-18 08:48:06 -08:00
parent 50aac4fec5
commit 24be0c4810

View File

@ -1658,6 +1658,8 @@ ack:
if (cap == ci->i_auth_cap && ci->i_dirty_caps) if (cap == ci->i_auth_cap && ci->i_dirty_caps)
flushing = __mark_caps_flushing(inode, session); flushing = __mark_caps_flushing(inode, session);
else
flushing = 0;
mds = cap->mds; /* remember mds, so we don't repeat */ mds = cap->mds; /* remember mds, so we don't repeat */
sent++; sent++;