RDS: don't update ip address tables if the address hasn't changed
If the ip address tables hasn't changed, there is no need to remove them only to be added back again. Lets fix it. Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com> Signed-off-by: Santosh Shilimkar <ssantosh@kernel.org> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1bc7b863f2
commit
e1f475a738
1 changed files with 7 additions and 2 deletions
|
@ -151,12 +151,17 @@ int rds_ib_update_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
|
|||
struct rds_ib_device *rds_ibdev_old;
|
||||
|
||||
rds_ibdev_old = rds_ib_get_device(ipaddr);
|
||||
if (rds_ibdev_old) {
|
||||
if (!rds_ibdev_old)
|
||||
return rds_ib_add_ipaddr(rds_ibdev, ipaddr);
|
||||
|
||||
if (rds_ibdev_old != rds_ibdev) {
|
||||
rds_ib_remove_ipaddr(rds_ibdev_old, ipaddr);
|
||||
rds_ib_dev_put(rds_ibdev_old);
|
||||
return rds_ib_add_ipaddr(rds_ibdev, ipaddr);
|
||||
}
|
||||
rds_ib_dev_put(rds_ibdev_old);
|
||||
|
||||
return rds_ib_add_ipaddr(rds_ibdev, ipaddr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
|
||||
|
|
Loading…
Reference in a new issue