diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ceph/auth_x.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/net/ceph/auth_x.c b/net/ceph/auth_x.c index ab080bb18254..05e9fc21d460 100644 --- a/net/ceph/auth_x.c +++ b/net/ceph/auth_x.c @@ -684,8 +684,7 @@ static void ceph_x_destroy(struct ceph_auth_client *ac) ac->private = NULL; } -static void ceph_x_invalidate_authorizer(struct ceph_auth_client *ac, - int peer_type) +static void invalidate_ticket(struct ceph_auth_client *ac, int peer_type) { struct ceph_x_ticket_handler *th; @@ -694,6 +693,19 @@ static void ceph_x_invalidate_authorizer(struct ceph_auth_client *ac, th->have_key = false; } +static void ceph_x_invalidate_authorizer(struct ceph_auth_client *ac, + int peer_type) +{ + /* + * We are to invalidate a service ticket in the hopes of + * getting a new, hopefully more valid, one. But, we won't get + * it unless our AUTH ticket is good, so invalidate AUTH ticket + * as well, just in case. + */ + invalidate_ticket(ac, peer_type); + invalidate_ticket(ac, CEPH_ENTITY_TYPE_AUTH); +} + static int calcu_signature(struct ceph_x_authorizer *au, struct ceph_msg *msg, __le64 *sig) { |