From: Sage Weil <sage@newdream.net>
Date: Tue, 18 Jan 2011 16:48:06 +0000 (-0800)
Subject: ceph: fix erroneous cap flush to non-auth mds
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=24be0c481067560b11441e794e27f166a3568863;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git

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>
---

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