Browse Source

RDS: Clear up some confusing code in send_remove_from_sock

The previous code was correct, but made the assumption that
if r_notifier was non-NULL then either r_recverr or r_notify
was true. Valid, but fragile. Changed to explicitly check
r_recverr (shows up in greps for recverr now, too.)

Signed-off-by: Andy Grover <andy.grover@oracle.com>
Andy Grover 15 years ago
parent
commit
a63273d499
1 changed files with 1 additions and 1 deletions
  1. 1 1
      net/rds/send.c

+ 1 - 1
net/rds/send.c

@@ -551,7 +551,7 @@ void rds_send_remove_from_sock(struct list_head *messages, int status)
 			rds_send_sndbuf_remove(rs, rm);
 			rds_send_sndbuf_remove(rs, rm);
 
 
 			if (ro->r_active && ro->r_notifier &&
 			if (ro->r_active && ro->r_notifier &&
-			    (status || ro->r_notify)) {
+			    (ro->r_notify || (ro->r_recverr && status))) {
 				notifier = ro->r_notifier;
 				notifier = ro->r_notifier;
 				list_add_tail(&notifier->n_list,
 				list_add_tail(&notifier->n_list,
 						&rs->rs_notify_queue);
 						&rs->rs_notify_queue);