diff options
author | Andy Grover <andy.grover@oracle.com> | 2009-04-01 10:20:19 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-02 09:52:22 +0200 |
commit | 745cbccac3fe8cead529a1b3358e1e86a1505bfa (patch) | |
tree | 6c865b19881dbdd64556cc1827f6966d8a646a38 /init | |
parent | RDS: Fix m_rs_lock deadlock (diff) | |
download | linux-745cbccac3fe8cead529a1b3358e1e86a1505bfa.tar.xz linux-745cbccac3fe8cead529a1b3358e1e86a1505bfa.zip |
RDS: Rewrite connection cleanup, fixing oops on rmmod
This fixes a bug where a connection was unexpectedly
not on *any* list while being destroyed. It also
cleans up some code duplication and regularizes some
function names.
* Grab appropriate lock in conn_free() and explain in comment
* Ensure via locking that a conn is never not on either
a dev's list or the nodev list
* Add rds_xx_remove_conn() to match rds_xx_add_conn()
* Make rds_xx_add_conn() return void
* Rename remove_{,nodev_}conns() to
destroy_{,nodev_}conns() and unify their implementation
in a helper function
* Document lock ordering as nodev conn_lock before
dev_conn_lock
Reported-by: Yosef Etigin <yosefe@voltaire.com>
Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions