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

Commit 3a22bf50 authored by Stanislav Kinsbursky's avatar Stanislav Kinsbursky Committed by Trond Myklebust
Browse files

SUNRPC: clear svc transports lists helper introduced



This patch moves service transports deletion from service sockets lists to
separated function.
This is a precursor patch, which would be usefull with service shutdown in
network namespace context, introduced later in the series.

Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 6f513365
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -950,11 +950,19 @@ static void svc_clear_pools(struct svc_serv *serv)
	}
}

void svc_close_all(struct svc_serv *serv)
static void svc_clear_list(struct list_head *xprt_list)
{
	struct svc_xprt *xprt;
	struct svc_xprt *tmp;

	list_for_each_entry_safe(xprt, tmp, xprt_list, xpt_list) {
		svc_delete_xprt(xprt);
	}
	BUG_ON(!list_empty(xprt_list));
}

void svc_close_all(struct svc_serv *serv)
{
	svc_close_list(&serv->sv_tempsocks);
	svc_close_list(&serv->sv_permsocks);

@@ -964,13 +972,8 @@ void svc_close_all(struct svc_serv *serv)
	 * svc_enqueue will not add new entries without taking the
	 * sp_lock and checking XPT_BUSY.
	 */
	list_for_each_entry_safe(xprt, tmp, &serv->sv_tempsocks, xpt_list)
		svc_delete_xprt(xprt);
	list_for_each_entry_safe(xprt, tmp, &serv->sv_permsocks, xpt_list)
		svc_delete_xprt(xprt);

	BUG_ON(!list_empty(&serv->sv_permsocks));
	BUG_ON(!list_empty(&serv->sv_tempsocks));
	svc_clear_list(&serv->sv_tempsocks);
	svc_clear_list(&serv->sv_permsocks);
}

/*