ceph: have get_authorizer methods return pointers
Have the get_authorizer auth_client method return a ceph_auth pointer rather than an integer, pointer-encoding any returned error value. This is to pave the way for making use of the returned value in an upcoming patch. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
This commit is contained in:
@@ -3395,15 +3395,20 @@ out:
|
||||
/*
|
||||
* authentication
|
||||
*/
|
||||
static int get_authorizer(struct ceph_connection *con,
|
||||
void **buf, int *len, int *proto,
|
||||
void **reply_buf, int *reply_len, int force_new)
|
||||
|
||||
/*
|
||||
* Note: returned pointer is the address of a structure that's
|
||||
* managed separately. Caller must *not* attempt to free it.
|
||||
*/
|
||||
static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
|
||||
void **buf, int *len, int *proto,
|
||||
void **reply_buf, int *reply_len,
|
||||
int force_new)
|
||||
{
|
||||
struct ceph_mds_session *s = con->private;
|
||||
struct ceph_mds_client *mdsc = s->s_mdsc;
|
||||
struct ceph_auth_client *ac = mdsc->fsc->client->monc.auth;
|
||||
struct ceph_auth_handshake *auth = &s->s_auth;
|
||||
int ret = 0;
|
||||
|
||||
if (force_new && auth->authorizer) {
|
||||
if (ac->ops && ac->ops->destroy_authorizer)
|
||||
@@ -3411,9 +3416,10 @@ static int get_authorizer(struct ceph_connection *con,
|
||||
auth->authorizer = NULL;
|
||||
}
|
||||
if (!auth->authorizer && ac->ops && ac->ops->create_authorizer) {
|
||||
ret = ac->ops->create_authorizer(ac, CEPH_ENTITY_TYPE_MDS, auth);
|
||||
int ret = ac->ops->create_authorizer(ac, CEPH_ENTITY_TYPE_MDS,
|
||||
auth);
|
||||
if (ret)
|
||||
return ret;
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
*proto = ac->protocol;
|
||||
@@ -3422,7 +3428,7 @@ static int get_authorizer(struct ceph_connection *con,
|
||||
*reply_buf = auth->authorizer_reply_buf;
|
||||
*reply_len = auth->authorizer_reply_buf_len;
|
||||
|
||||
return 0;
|
||||
return auth;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user