RDS/IB: get the xmit max_sge from the RDS IB device on the connection
authorZach Brown <zach.brown@oracle.com>
Tue, 18 May 2010 22:44:50 +0000 (15:44 -0700)
committerAndy Grover <andy.grover@oracle.com>
Thu, 9 Sep 2010 01:15:16 +0000 (18:15 -0700)
commit89bf9d4158b5a1b6bd00960eb2e47601ec8cc138
treee11c5ea0b69fb1bc53a03f83570e160dbe3b005f
parenta46ca94e7fb2c93a59e08b42fd77d8c478fda5fc
RDS/IB: get the xmit max_sge from the RDS IB device on the connection

rds_ib_xmit_rdma() was calling ib_get_client_data() to get at the rds_ibdevice
just to get the max_sge for the transmit.  This patch instead has it get it
directly off the rds_ibdev which is stored on the connection.

The current code won't free the rds_ibdev until all the IB connections that use
it are freed.  So it's safe to reference the rds_ibdev this way.  In the future
it also makes it easier to support proper reference counting of the rds_ibdev
struct.

As an additional bonus, this gets rid of the performance hit of calling in to
the IB stack to look up the rds_ibdev.  The current implementation in the IB
stack acquires an interrupt blocking spinlock to protect the registration of
client callback data.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
net/rds/ib_send.c