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