[rds-devel] [PATCH net-next 3/3] rds: tcp: atomically purge entries from rds_tcp_conn_list during netns delete

Santosh Shilimkar santosh.shilimkar at oracle.com
Thu Nov 30 12:38:21 PST 2017


On 11/30/2017 11:11 AM, Sowmini Varadhan wrote:
> The rds_tcp_kill_sock() function parses the rds_tcp_conn_list
> to find the rds_connection entries marked for deletion as part
> of the netns deletion under the protection of the rds_tcp_conn_lock.
> Since the rds_tcp_conn_list tracks rds_tcp_connections (which
> have a 1:1 mapping with rds_conn_path), multiple tc entries in
> the rds_tcp_conn_list will map to a single rds_connection, and will
> be deleted as part of the rds_conn_destroy() operation that is
> done outside the rds_tcp_conn_lock.
> 
> The rds_tcp_conn_list traversal done under the protection of
> rds_tcp_conn_lock should not leave any doomed tc entries in
> the list after the rds_tcp_conn_lock is released, else another
> concurrently executiong netns delete (for a differnt netns) thread
> may trip on these entries.
> 
> Reported-by: syzbot <syzkaller at googlegroups.com>
> Signed-off-by: Sowmini Varadhan <sowmini.varadhan at oracle.com>
> ---
Acked-by: Santosh Shilimkar <santosh.shilimkar at oracle.com>



More information about the rds-devel mailing list