• Zach Brown's avatar
    RDS/IB: destroy connections on rmmod · 8aeb1ba6
    Zach Brown authored
    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: default avatarZach Brown <zach.brown@oracle.com>
    8aeb1ba6
ib.c 11.7 KB