libceph: invalidate AUTH in addition to a service ticket
authorIlya Dryomov <idryomov@gmail.com>
Thu, 14 Jan 2016 16:31:51 +0000 (17:31 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 21 Jan 2016 18:36:09 +0000 (19:36 +0100)
commit187d131dd983fb1ab1c5d0d9ee98ab6511f252cd
treefc39313067801733d39be868da3f56a01393eaf0
parent6abe097db59e1a5af7f082709f38bd95c54ccca1
libceph: invalidate AUTH in addition to a service ticket

If we fault due to authentication, we invalidate the service ticket we
have and request a new one - the idea being that if a service rejected
our authorizer, it must have expired, despite mon_client's attempts at
periodic renewal.  (The other possibility is that our ticket is too new
and the service hasn't gotten it yet, in which case invalidating isn't
necessary but doesn't hurt.)

Invalidating just the service ticket is not enough, though.  If we
assume a failure on mon_client's part to renew a service ticket, we
have to assume the same for the AUTH ticket.  If our AUTH ticket is
bad, we won't get any service tickets no matter how hard we try, so
invalidate AUTH ticket along with the service ticket.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Sage Weil <sage@redhat.com>
net/ceph/auth_x.c