.. | .. |
---|
104 | 104 | spin_lock_irqsave(&q->lock, flags); |
---|
105 | 105 | head = &q->zcookie_head; |
---|
106 | 106 | if (!list_empty(head)) { |
---|
107 | | - info = list_entry(head, struct rds_msg_zcopy_info, |
---|
108 | | - rs_zcookie_next); |
---|
109 | | - if (info && rds_zcookie_add(info, cookie)) { |
---|
| 107 | + info = list_first_entry(head, struct rds_msg_zcopy_info, |
---|
| 108 | + rs_zcookie_next); |
---|
| 109 | + if (rds_zcookie_add(info, cookie)) { |
---|
110 | 110 | spin_unlock_irqrestore(&q->lock, flags); |
---|
111 | 111 | kfree(rds_info_from_znotifier(znotif)); |
---|
112 | 112 | /* caller invokes rds_wake_sk_sleep() */ |
---|
.. | .. |
---|
118 | 118 | ck = &info->zcookies; |
---|
119 | 119 | memset(ck, 0, sizeof(*ck)); |
---|
120 | 120 | WARN_ON(!rds_zcookie_add(info, cookie)); |
---|
121 | | - list_add_tail(&q->zcookie_head, &info->rs_zcookie_next); |
---|
| 121 | + list_add_tail(&info->rs_zcookie_next, &q->zcookie_head); |
---|
122 | 122 | |
---|
123 | 123 | spin_unlock_irqrestore(&q->lock, flags); |
---|
124 | 124 | /* caller invokes rds_wake_sk_sleep() */ |
---|