diff options
-rw-r--r-- | fs/ceph/caps.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 16266f3e9a33..7045a8dfaad4 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c | |||
@@ -690,6 +690,15 @@ int __ceph_caps_issued(struct ceph_inode_info *ci, int *implemented) | |||
690 | if (implemented) | 690 | if (implemented) |
691 | *implemented |= cap->implemented; | 691 | *implemented |= cap->implemented; |
692 | } | 692 | } |
693 | /* | ||
694 | * exclude caps issued by non-auth MDS, but are been revoking | ||
695 | * by the auth MDS. The non-auth MDS should be revoking/exporting | ||
696 | * these caps, but the message is delayed. | ||
697 | */ | ||
698 | if (ci->i_auth_cap) { | ||
699 | cap = ci->i_auth_cap; | ||
700 | have &= ~cap->implemented | cap->issued; | ||
701 | } | ||
693 | return have; | 702 | return have; |
694 | } | 703 | } |
695 | 704 | ||