Commit af141635 authored by Sridhar Samudrala's avatar Sridhar Samudrala

[SCTP] When an address is deleted, update any transports that are caching it as a source adddress.

Signed-off-by: default avatarSridhar Samudrala <sri@us.ibm.com>
parent 9ac4f08b
...@@ -2482,6 +2482,8 @@ static int sctp_asconf_param_success(struct sctp_association *asoc, ...@@ -2482,6 +2482,8 @@ static int sctp_asconf_param_success(struct sctp_association *asoc,
union sctp_addr addr; union sctp_addr addr;
struct sctp_bind_addr *bp = &asoc->base.bind_addr; struct sctp_bind_addr *bp = &asoc->base.bind_addr;
union sctp_addr_param *addr_param; union sctp_addr_param *addr_param;
struct list_head *pos;
struct sctp_transport *transport;
int retval = 0; int retval = 0;
addr_param = (union sctp_addr_param *) addr_param = (union sctp_addr_param *)
...@@ -2505,6 +2507,12 @@ static int sctp_asconf_param_success(struct sctp_association *asoc, ...@@ -2505,6 +2507,12 @@ static int sctp_asconf_param_success(struct sctp_association *asoc,
retval = sctp_del_bind_addr(bp, &addr); retval = sctp_del_bind_addr(bp, &addr);
sctp_write_unlock(&asoc->base.addr_lock); sctp_write_unlock(&asoc->base.addr_lock);
sctp_local_bh_enable(); sctp_local_bh_enable();
list_for_each(pos, &asoc->peer.transport_addr_list) {
transport = list_entry(pos, struct sctp_transport,
transports);
sctp_transport_route(transport, NULL,
sctp_sk(asoc->base.sk));
}
break; break;
default: default:
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment