diff options
Diffstat (limited to 'net/rds')
-rw-r--r-- | net/rds/send.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/rds/send.c b/net/rds/send.c index 663fd60b40cf..8e3fd9981c2e 100644 --- a/net/rds/send.c +++ b/net/rds/send.c | |||
@@ -353,15 +353,14 @@ restart: | |||
353 | /* | 353 | /* |
354 | * Other senders will see we have c_send_lock and exit. We | 354 | * Other senders will see we have c_send_lock and exit. We |
355 | * need to recheck the send queue and race again for c_send_lock | 355 | * need to recheck the send queue and race again for c_send_lock |
356 | * to make sure messages don't just sit on the send queue. | 356 | * to make sure messages don't just sit on the send queue, if |
357 | * somebody hasn't already beat us into the loop. | ||
357 | * | 358 | * |
358 | * If the transport cannot continue (i.e ret != 0), then it must | 359 | * If the transport cannot continue (i.e ret != 0), then it must |
359 | * call us when more room is available, such as from the tx | 360 | * call us when more room is available, such as from the tx |
360 | * completion handler. | 361 | * completion handler. |
361 | */ | 362 | */ |
362 | if (ret == 0) { | 363 | if (ret == 0) { |
363 | /* A simple bit test would be way faster than taking the | ||
364 | * spin lock */ | ||
365 | smp_mb(); | 364 | smp_mb(); |
366 | if (!list_empty(&conn->c_send_queue)) { | 365 | if (!list_empty(&conn->c_send_queue)) { |
367 | rds_stats_inc(s_send_lock_queue_raced); | 366 | rds_stats_inc(s_send_lock_queue_raced); |