Commit 7c6e6fc5 authored by Ilya Dryomov's avatar Ilya Dryomov
Browse files

libceph: assert both regular and lingering lists in __remove_osd()



It is important that both regular and lingering requests lists are
empty when the OSD is removed.

Signed-off-by: default avatarIlya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: default avatarAlex Elder <elder@linaro.org>
parent 6562d661
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -1032,6 +1032,8 @@ static void __remove_osd(struct ceph_osd_client *osdc, struct ceph_osd *osd)
{
{
	dout("__remove_osd %p\n", osd);
	dout("__remove_osd %p\n", osd);
	BUG_ON(!list_empty(&osd->o_requests));
	BUG_ON(!list_empty(&osd->o_requests));
	BUG_ON(!list_empty(&osd->o_linger_requests));

	rb_erase(&osd->o_node, &osdc->osds);
	rb_erase(&osd->o_node, &osdc->osds);
	list_del_init(&osd->o_osd_lru);
	list_del_init(&osd->o_osd_lru);
	ceph_con_close(&osd->o_con);
	ceph_con_close(&osd->o_con);