fs: dlm: fix proper srcu api call
authorAlexander Aring <aahringo@redhat.com>
Tue, 3 Nov 2020 01:04:16 +0000 (20:04 -0500)
committerDavid Teigland <teigland@redhat.com>
Tue, 10 Nov 2020 18:14:20 +0000 (12:14 -0600)
This patch will use call_srcu() instead of call_rcu() because the
related datastructure resource are handled under srcu context. I assume
the current code is fine anyway since free_conn() must be called when
the related resource are not in use otherwise. However it will correct
the overall handling in a srcu context.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index 79f56f1..77382c2 100644 (file)
@@ -1616,10 +1616,11 @@ static void free_conn(struct connection *con)
        spin_unlock(&connections_lock);
        if (con->othercon) {
                clean_one_writequeue(con->othercon);
-               call_rcu(&con->othercon->rcu, connection_release);
+               call_srcu(&connections_srcu, &con->othercon->rcu,
+                         connection_release);
        }
        clean_one_writequeue(con);
-       call_rcu(&con->rcu, connection_release);
+       call_srcu(&connections_srcu, &con->rcu, connection_release);
 }
 
 static void work_flush(void)