diff options
Diffstat (limited to 'fs/ceph/mds_client.c')
-rw-r--r-- | fs/ceph/mds_client.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 4e3e8b229e67..aa8506bad42d 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c | |||
@@ -2946,12 +2946,25 @@ static int verify_authorizer_reply(struct ceph_connection *con, int len) | |||
2946 | return ac->ops->verify_authorizer_reply(ac, s->s_authorizer, len); | 2946 | return ac->ops->verify_authorizer_reply(ac, s->s_authorizer, len); |
2947 | } | 2947 | } |
2948 | 2948 | ||
2949 | static int invalidate_authorizer(struct ceph_connection *con) | ||
2950 | { | ||
2951 | struct ceph_mds_session *s = con->private; | ||
2952 | struct ceph_mds_client *mdsc = s->s_mdsc; | ||
2953 | struct ceph_auth_client *ac = mdsc->client->monc.auth; | ||
2954 | |||
2955 | if (ac->ops->invalidate_authorizer) | ||
2956 | ac->ops->invalidate_authorizer(ac, CEPH_ENTITY_TYPE_MDS); | ||
2957 | |||
2958 | return ceph_monc_validate_auth(&mdsc->client->monc); | ||
2959 | } | ||
2960 | |||
2949 | const static struct ceph_connection_operations mds_con_ops = { | 2961 | const static struct ceph_connection_operations mds_con_ops = { |
2950 | .get = con_get, | 2962 | .get = con_get, |
2951 | .put = con_put, | 2963 | .put = con_put, |
2952 | .dispatch = dispatch, | 2964 | .dispatch = dispatch, |
2953 | .get_authorizer = get_authorizer, | 2965 | .get_authorizer = get_authorizer, |
2954 | .verify_authorizer_reply = verify_authorizer_reply, | 2966 | .verify_authorizer_reply = verify_authorizer_reply, |
2967 | .invalidate_authorizer = invalidate_authorizer, | ||
2955 | .peer_reset = peer_reset, | 2968 | .peer_reset = peer_reset, |
2956 | }; | 2969 | }; |
2957 | 2970 | ||