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:
parent
50aac4fec5
commit
24be0c4810
@ -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++;
|
||||||
|
Loading…
Reference in New Issue
Block a user