Skip to content

Commit a243036

Browse files
Greg Jumpervijay-suman
authored andcommitted
Revert "net/rds: Change c_net field to possible_net_t"
This reverts commit f9eb108e49f31042519f9557f5c7863acbbfe04e. Orabug: 35811116 Signed-off-by: Greg Jumper <[email protected]> Reviewed-by: Sharath Srinivasan <[email protected]>
1 parent 9a827ee commit a243036

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

net/rds/connection.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,7 @@ void rds_conn_destroy(struct rds_connection *conn, int shutdown)
758758

759759
atomic_dec(&conn->c_trans->t_conn_count);
760760

761+
put_net(conn->c_net);
761762
kfree(conn->c_path);
762763
kmem_cache_free(rds_conn_slab, conn);
763764
}

net/rds/rds.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ struct rds_connection {
369369
/* Protocol version */
370370
unsigned int c_proposed_version;
371371
unsigned int c_version;
372-
possible_net_t c_net;
372+
struct net *c_net;
373373

374374
/* Re-connect stall diagnostics */
375375
unsigned long c_reconnect_start;
@@ -404,14 +404,13 @@ struct rds_connection {
404404
static inline
405405
struct net *rds_conn_net(struct rds_connection *conn)
406406
{
407-
return read_pnet(&conn->c_net);
407+
return conn->c_net;
408408
}
409409

410410
static inline
411411
void rds_conn_net_set(struct rds_connection *conn, struct net *net)
412412
{
413-
/* Once set, never changed. */
414-
write_pnet(&conn->c_net, net);
413+
conn->c_net = get_net(net);
415414
}
416415

417416
#define RDS_FLAG_CONG_BITMAP 0x01

net/rds/tcp.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,9 @@ static void rds_tcp_kill_sock(struct net *net, struct rds_tcp_net *rtn)
608608
sock_release(rtn->rds_tcp_accepted_sock);
609609
spin_lock_irq(&rds_tcp_conn_lock);
610610
list_for_each_entry_safe(tc, _tc, &rds_tcp_conn_list, t_tcp_node) {
611-
if (!net_eq(net, rds_conn_net(tc->t_cpath->cp_conn)))
611+
struct net *c_net = tc->t_cpath->cp_conn->c_net;
612+
613+
if (net != c_net)
612614
continue;
613615
if (!list_has_conn(&tmp_list, tc->t_cpath->cp_conn))
614616
list_move_tail(&tc->t_tcp_node, &tmp_list);
@@ -663,8 +665,9 @@ static void rds_tcp_sysctl_reset(struct net *net)
663665

664666
spin_lock_irq(&rds_tcp_conn_lock);
665667
list_for_each_entry_safe(tc, _tc, &rds_tcp_conn_list, t_tcp_node) {
666-
if (!net_eq(net, rds_conn_net(tc->t_cpath->cp_conn)) ||
667-
!tc->t_sock)
668+
struct net *c_net = tc->t_cpath->cp_conn->c_net;
669+
670+
if (net != c_net || !tc->t_sock)
668671
continue;
669672

670673
/* reconnect with new parameters */

0 commit comments

Comments
 (0)