diff --git a/net/rds/send.c b/net/rds/send.c index 2581b8e3dbe70b70a73bac2511c75dcb1efba85f..dd901c324edf8f7d6cdb30b5dd795d6ad828d44c 100644 --- a/net/rds/send.c +++ b/net/rds/send.c @@ -411,7 +411,8 @@ int rds_send_xmit(struct rds_connection *conn) */ if (ret == 0) { smp_mb(); - if (!list_empty(&conn->c_send_queue) && + if ((test_bit(0, &conn->c_map_queued) || + !list_empty(&conn->c_send_queue)) && send_gen == conn->c_send_gen) { rds_stats_inc(s_send_lock_queue_raced); goto restart;