fs: dlm: handle possible othercon writequeues

This patch adds free of possible other writequeue entries in othercon
member of struct connection.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
This commit is contained in:
Alexander Aring 2020-08-27 15:02:53 -04:00 committed by David Teigland
parent 0de984323a
commit 948c47e9bc
1 changed files with 4 additions and 2 deletions

View File

@ -1608,11 +1608,13 @@ static void shutdown_conn(struct connection *con)
static void free_conn(struct connection *con) static void free_conn(struct connection *con)
{ {
close_connection(con, true, true, true); close_connection(con, true, true, true);
if (con->othercon)
kfree_rcu(con->othercon, rcu);
spin_lock(&connections_lock); spin_lock(&connections_lock);
hlist_del_rcu(&con->list); hlist_del_rcu(&con->list);
spin_unlock(&connections_lock); spin_unlock(&connections_lock);
if (con->othercon) {
clean_one_writequeue(con->othercon);
kfree_rcu(con->othercon, rcu);
}
clean_one_writequeue(con); clean_one_writequeue(con);
kfree_rcu(con, rcu); kfree_rcu(con, rcu);
} }