linux/net/rds
Zach Brown 8aeb1ba663 RDS/IB: destroy connections on rmmod
IB connections were not being destroyed during rmmod.

First, recently IB device removal callback was changed to disconnect
connections that used the removing device rather than destroying them.  So
connections with devices during rmmod were not being destroyed.

Second, rds_ib_destroy_nodev_conns() was being called before connections are
disassociated with devices.  It would almost never find connections in the
nodev list.

We first get rid of rds_ib_destroy_conns(), which is no longer called, and
refactor the existing caller into the main body of the function and get rid of
the list and lock wrappers.

Then we call rds_ib_destroy_nodev_conns() *after* ib_unregister_client() has
removed the IB device from all the conns and put the conns on the nodev list.

The result is that IB connections are destroyed by rmmod.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
2010-09-08 18:16:33 -07:00
..
af_rds.c rds: Use RCU for the bind lookup searches 2010-09-08 18:15:08 -07:00
bind.c rds: Use RCU for the bind lookup searches 2010-09-08 18:15:08 -07:00
cong.c RDS: Bypass workqueue when queueing cong updates 2010-09-08 18:12:16 -07:00
connection.c RDS: whitespace 2010-09-08 18:15:32 -07:00
ib.c RDS/IB: destroy connections on rmmod 2010-09-08 18:16:33 -07:00
ib.h RDS/IB: destroy connections on rmmod 2010-09-08 18:16:33 -07:00
ib_cm.c RDS/IB: Add caching of frags and incs 2010-09-08 18:15:23 -07:00
ib_rdma.c RDS/IB: destroy connections on rmmod 2010-09-08 18:16:33 -07:00
ib_recv.c RDS/IB: Make ib_recv_refill return void 2010-09-08 18:16:31 -07:00
ib_ring.c RDS/IW+IB: Set recv ring low water mark to 1/2 full. 2009-04-09 17:21:14 -07:00
ib_send.c rds: fix rds_send_xmit() serialization 2010-09-08 18:15:27 -07:00
ib_stats.c RDS: Move atomic stats from general to ib-specific area 2010-09-08 18:12:20 -07:00
ib_sysctl.c RDS: Remove unsignaled_bytes sysctl 2010-09-08 18:11:52 -07:00
info.c RDS: cleanup: remove "== NULL"s and "!= NULL"s in ptr comparisons 2010-09-08 18:11:32 -07:00
info.h RDS: Info and stats 2009-02-26 23:39:25 -08:00
iw.c RDS: Stop supporting old cong map sending method 2010-09-08 18:12:10 -07:00
iw.h RDS: Remove struct rds_rdma_op 2010-09-08 18:11:58 -07:00
iw_cm.c RDS: cleanup: remove "== NULL"s and "!= NULL"s in ptr comparisons 2010-09-08 18:11:32 -07:00
iw_rdma.c RDS: fold rdma.h into rds.h 2010-09-08 18:11:37 -07:00
iw_recv.c RDS: inc_purge() transport function unused - remove it 2010-09-08 18:11:46 -07:00
iw_ring.c RDS/IW+IB: Set recv ring low water mark to 1/2 full. 2009-04-09 17:21:14 -07:00
iw_send.c RDS: Rename data op members prefix from m_ to op_ 2010-09-08 18:11:59 -07:00
iw_stats.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
iw_sysctl.c RDS: cleanup: remove "== NULL"s and "!= NULL"s in ptr comparisons 2010-09-08 18:11:32 -07:00
Kconfig RDS: Modularize RDMA and TCP transports 2009-08-23 19:13:09 -07:00
loop.c RDS: Stop supporting old cong map sending method 2010-09-08 18:12:10 -07:00
loop.h RDS: loopback 2009-02-26 23:39:26 -08:00
Makefile RDS: Modularize RDMA and TCP transports 2009-08-23 19:13:09 -07:00
message.c rds: don't let RDS shutdown a connection while senders are present 2010-09-08 18:15:09 -07:00
page.c RDS: Use page_remainder_alloc() for recv bufs 2010-09-08 18:15:20 -07:00
rdma.c RDS: Add flag for silent ops. Do atomic op before RDMA 2010-09-08 18:12:06 -07:00
rdma_transport.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-27 12:49:13 -07:00
rdma_transport.h RDS: Common RDMA transport code 2009-02-26 23:39:33 -08:00
rds.h rds: fix rds_send_xmit() serialization 2010-09-08 18:15:27 -07:00
recv.c RDS: Whitespace 2010-09-08 18:11:44 -07:00
send.c rds: fix rds_send_xmit() serialization 2010-09-08 18:15:27 -07:00
stats.c RDS: Move atomic stats from general to ib-specific area 2010-09-08 18:12:20 -07:00
sysctl.c RDS: cleanup: remove "== NULL"s and "!= NULL"s in ptr comparisons 2010-09-08 18:11:32 -07:00
tcp.c RDS: Stop supporting old cong map sending method 2010-09-08 18:12:10 -07:00
tcp.h RDS: Stop supporting old cong map sending method 2010-09-08 18:12:10 -07:00
tcp_connect.c RDS: cleanup: remove "== NULL"s and "!= NULL"s in ptr comparisons 2010-09-08 18:11:32 -07:00
tcp_listen.c RDS: cleanup: remove "== NULL"s and "!= NULL"s in ptr comparisons 2010-09-08 18:11:32 -07:00
tcp_recv.c RDS: inc_purge() transport function unused - remove it 2010-09-08 18:11:46 -07:00
tcp_send.c RDS: Stop supporting old cong map sending method 2010-09-08 18:12:10 -07:00
tcp_stats.c RDS: Add TCP transport to RDS 2009-08-23 19:13:02 -07:00
threads.c rds: fix rds_send_xmit() serialization 2010-09-08 18:15:27 -07:00
transport.c RDS: Track transports via an array, not a list 2009-08-23 19:13:12 -07:00
xlist.h RDS: Remove unused XLIST_PTR_TAIL and xlist_protect() 2010-09-08 18:16:06 -07:00