diff options
Diffstat (limited to 'fs/dlm')
-rw-r--r-- | fs/dlm/lowcomms.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c index 04afc7178afb..794216eb728c 100644 --- a/fs/dlm/lowcomms.c +++ b/fs/dlm/lowcomms.c @@ -1608,11 +1608,13 @@ static void shutdown_conn(struct connection *con) static void free_conn(struct connection *con) { close_connection(con, true, true, true); - if (con->othercon) - kfree_rcu(con->othercon, rcu); spin_lock(&connections_lock); hlist_del_rcu(&con->list); spin_unlock(&connections_lock); + if (con->othercon) { + clean_one_writequeue(con->othercon); + kfree_rcu(con->othercon, rcu); + } clean_one_writequeue(con); kfree_rcu(con, rcu); } |