Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79494d1b authored by Sage Weil's avatar Sage Weil
Browse files

ceph: fix leak of osd authorizer



Release the ceph_authorizer when releasing osd state.

Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent a922d38f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -361,9 +361,14 @@ static void put_osd(struct ceph_osd *osd)
{
	dout("put_osd %p %d -> %d\n", osd, atomic_read(&osd->o_ref),
	     atomic_read(&osd->o_ref) - 1);
	if (atomic_dec_and_test(&osd->o_ref))
	if (atomic_dec_and_test(&osd->o_ref)) {
		struct ceph_auth_client *ac = osd->o_osdc->client->monc.auth;

		if (osd->o_authorizer)
			ac->ops->destroy_authorizer(ac, osd->o_authorizer);
		kfree(osd);
	}
}

/*
 * remove an osd from our map