]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
RDS: don't modify conn state directly in rds_connect_complete
authorSantosh Shilimkar <santosh.shilimkar@oracle.com>
Thu, 15 Sep 2016 02:03:30 +0000 (19:03 -0700)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Wed, 12 Oct 2016 17:20:25 +0000 (10:20 -0700)
Avoid modifying the conn state directly and let
the APIs handle it to be consistent across.

Orabug: 22347191

Tested-by: Michael Nowak <michael.nowak@oracle.com>
Tested-by: Rafael Alejandro Peralez <rafael.peralez@oracle.com>
Tested-by: Liwen Huang <liwen.huang@oracle.com>
Tested-by: Hong Liu <hong.x.liu@oracle.com>
Reviewed-by: Mukesh Kacker <mukesh.kacker@oracle.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
net/rds/threads.c

index c59be62e98044e348bac69cf5921265bcfacf195..04e9127a1dbb792004bc0e914c6fe432ab97697d 100644 (file)
@@ -80,12 +80,10 @@ EXPORT_SYMBOL_GPL(rds_local_wq);
 void rds_connect_path_complete(struct rds_connection *conn, int curr)
 {
        if (!rds_conn_transition(conn, curr, RDS_CONN_UP)) {
-               printk(KERN_WARNING "%s: Cannot transition to state UP"
-                               ", current state is %d\n",
-                               __func__,
-                               atomic_read(&conn->c_state));
-               atomic_set(&conn->c_state, RDS_CONN_ERROR);
-               queue_work(conn->c_wq, &conn->c_down_w);
+               pr_warn("RDS: Cannot transition conn <%pI4,%pI4,%d> to state UP, current state is %d\n",
+                       &conn->c_laddr, &conn->c_faddr, conn->c_tos,
+               atomic_read(&conn->c_state));
+               rds_conn_drop(conn, DR_IB_NOT_CONNECTING_STATE);
                return;
        }