nfs/nlm: unref fds in nlm_client_free()
When a nlm_clnt is getting free'd, the FDs associated with this client should be unref'd as well. Change-Id: Ifa4ea4b7ed45a454413cfc0c820f2516c534a9aa BUG: 1467313 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: https://review.gluster.org/17697 Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Amar Tumballi <amarts@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: jiffin tony Thottan <jthottan@redhat.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
This commit is contained in:
parent
daed52b8eb
commit
e9a482f94e
@ -325,6 +325,17 @@ ret:
|
||||
static void
|
||||
nlm_client_free (nlm_client_t *nlmclnt)
|
||||
{
|
||||
nlm_fde_t *fde = NULL, *tmp = NULL;
|
||||
|
||||
gf_msg_trace (GF_NLM, 0, "removing nlm-client %s from the list",
|
||||
nlmclnt->caller_name);
|
||||
|
||||
list_for_each_entry_safe (fde, tmp, &nlmclnt->fdes, fde_list) {
|
||||
fd_unref (fde->fd);
|
||||
list_del (&fde->fde_list);
|
||||
GF_FREE (fde);
|
||||
}
|
||||
|
||||
list_del (&nlmclnt->fdes);
|
||||
list_del (&nlmclnt->nlm_clients);
|
||||
list_del (&nlmclnt->shares);
|
||||
@ -1172,7 +1183,6 @@ int
|
||||
nlm_cleanup_fds (char *caller_name)
|
||||
{
|
||||
int nlmclnt_found = 0;
|
||||
nlm_fde_t *fde = NULL, *tmp = NULL;
|
||||
nlm_client_t *nlmclnt = NULL;
|
||||
|
||||
LOCK (&nlm_client_list_lk);
|
||||
@ -1187,15 +1197,7 @@ nlm_cleanup_fds (char *caller_name)
|
||||
if (!nlmclnt_found)
|
||||
goto ret;
|
||||
|
||||
if (list_empty (&nlmclnt->fdes))
|
||||
goto ret;
|
||||
|
||||
list_for_each_entry_safe (fde, tmp, &nlmclnt->fdes, fde_list) {
|
||||
fd_unref (fde->fd);
|
||||
list_del (&fde->fde_list);
|
||||
GF_FREE (fde);
|
||||
}
|
||||
|
||||
nlm_client_free (nlmclnt);
|
||||
ret:
|
||||
UNLOCK (&nlm_client_list_lk);
|
||||
return 0;
|
||||
@ -1236,9 +1238,6 @@ nlm_search_and_delete (fd_t *fd, nlm4_lock *lk)
|
||||
goto ret;
|
||||
list_del (&fde->fde_list);
|
||||
|
||||
if (list_empty (&nlmclnt->fdes) && list_empty (&nlmclnt->shares))
|
||||
nlm_client_free (nlmclnt);
|
||||
|
||||
ret:
|
||||
UNLOCK (&nlm_client_list_lk);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user