|
@@ -685,20 +685,20 @@ void reqsk_queue_hash_req(struct request_sock_queue *queue,
|
|
req->num_timeout = 0;
|
|
req->num_timeout = 0;
|
|
req->sk = NULL;
|
|
req->sk = NULL;
|
|
|
|
|
|
|
|
+ setup_timer(&req->rsk_timer, reqsk_timer_handler, (unsigned long)req);
|
|
|
|
+ mod_timer_pinned(&req->rsk_timer, jiffies + timeout);
|
|
|
|
+ req->rsk_hash = hash;
|
|
|
|
+
|
|
/* before letting lookups find us, make sure all req fields
|
|
/* before letting lookups find us, make sure all req fields
|
|
* are committed to memory and refcnt initialized.
|
|
* are committed to memory and refcnt initialized.
|
|
*/
|
|
*/
|
|
smp_wmb();
|
|
smp_wmb();
|
|
atomic_set(&req->rsk_refcnt, 2);
|
|
atomic_set(&req->rsk_refcnt, 2);
|
|
- setup_timer(&req->rsk_timer, reqsk_timer_handler, (unsigned long)req);
|
|
|
|
- req->rsk_hash = hash;
|
|
|
|
|
|
|
|
spin_lock(&queue->syn_wait_lock);
|
|
spin_lock(&queue->syn_wait_lock);
|
|
req->dl_next = lopt->syn_table[hash];
|
|
req->dl_next = lopt->syn_table[hash];
|
|
lopt->syn_table[hash] = req;
|
|
lopt->syn_table[hash] = req;
|
|
spin_unlock(&queue->syn_wait_lock);
|
|
spin_unlock(&queue->syn_wait_lock);
|
|
-
|
|
|
|
- mod_timer_pinned(&req->rsk_timer, jiffies + timeout);
|
|
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(reqsk_queue_hash_req);
|
|
EXPORT_SYMBOL(reqsk_queue_hash_req);
|
|
|
|
|