Build fix for RHEL4.
b=5733
r=green (original patch)
CERROR ("Can't set CPU affinity for %s to %d\n", name, id);
}
#endif /* CONFIG_SMP && CPU_AFFINITY */
CERROR ("Can't set CPU affinity for %s to %d\n", name, id);
}
#endif /* CONFIG_SMP && CPU_AFFINITY */
spin_lock_irqsave (&sched->kss_lock, flags);
while (!ksocknal_data.ksnd_shuttingdown) {
spin_lock_irqsave (&sched->kss_lock, flags);
while (!ksocknal_data.ksnd_shuttingdown) {
* kss_lock. */
conn->ksnc_rx_ready = 0;
spin_unlock_irqrestore(&sched->kss_lock, flags);
* kss_lock. */
conn->ksnc_rx_ready = 0;
spin_unlock_irqrestore(&sched->kss_lock, flags);
rc = ksocknal_process_receive(conn);
rc = ksocknal_process_receive(conn);
spin_lock_irqsave(&sched->kss_lock, flags);
/* I'm the only one that can clear this flag */
spin_lock_irqsave(&sched->kss_lock, flags);
/* I'm the only one that can clear this flag */
/* Did process_receive get everything it wanted? */
if (rc == 0)
conn->ksnc_rx_ready = 1;
/* Did process_receive get everything it wanted? */
if (rc == 0)
conn->ksnc_rx_ready = 1;
if (conn->ksnc_rx_state == SOCKNAL_RX_FMB_SLEEP ||
conn->ksnc_rx_state == SOCKNAL_RX_GET_FMB) {
/* Conn blocked for a forwarding buffer.
if (conn->ksnc_rx_state == SOCKNAL_RX_FMB_SLEEP ||
conn->ksnc_rx_state == SOCKNAL_RX_GET_FMB) {
/* Conn blocked for a forwarding buffer.
ksock_peer_t *peer;
unsigned long flags;
int type;
ksock_peer_t *peer;
unsigned long flags;
int type;
int rc = 0;
write_lock_irqsave (&ksocknal_data.ksnd_global_lock, flags);
int rc = 0;
write_lock_irqsave (&ksocknal_data.ksnd_global_lock, flags);
if ((route->ksnr_connected & (1<<SOCKNAL_CONN_ANY)) == 0)
type = SOCKNAL_CONN_ANY;
else
if ((route->ksnr_connected & (1<<SOCKNAL_CONN_ANY)) == 0)
type = SOCKNAL_CONN_ANY;
else
- break; /* got connected while route queued */
+ break; /* got connected while route queued */
} else {
if ((route->ksnr_connected & (1<<SOCKNAL_CONN_CONTROL)) == 0)
type = SOCKNAL_CONN_CONTROL;
} else {
if ((route->ksnr_connected & (1<<SOCKNAL_CONN_CONTROL)) == 0)
type = SOCKNAL_CONN_CONTROL;
else if ((route->ksnr_connected & (1<<SOCKNAL_CONN_BULK_OUT)) == 0)
type = SOCKNAL_CONN_BULK_OUT;
else
else if ((route->ksnr_connected & (1<<SOCKNAL_CONN_BULK_OUT)) == 0)
type = SOCKNAL_CONN_BULK_OUT;
else
- break; /* got connected while route queued */
+ break; /* got connected while route queued */
- write_unlock_irqrestore (&ksocknal_data.ksnd_global_lock, flags);
+ write_unlock_irqrestore(&ksocknal_data.ksnd_global_lock, flags);
rc = ksocknal_connect_peer (route, type);
if (rc != 0)
rc = ksocknal_connect_peer (route, type);
if (rc != 0)
route->ksnr_connecting = 0;
write_unlock_irqrestore (&ksocknal_data.ksnd_global_lock, flags);
return;
route->ksnr_connecting = 0;
write_unlock_irqrestore (&ksocknal_data.ksnd_global_lock, flags);
return;
failed:
switch (rc) {
/* "normal" errors */
failed:
switch (rc) {
/* "normal" errors */
list_del(&route->ksnr_list);
list_add_tail(&route->ksnr_list, &peer->ksnp_routes);
}
list_del(&route->ksnr_list);
list_add_tail(&route->ksnr_list, &peer->ksnp_routes);
}
write_unlock_irqrestore (&ksocknal_data.ksnd_global_lock, flags);
while (!list_empty (&zombies)) {
write_unlock_irqrestore (&ksocknal_data.ksnd_global_lock, flags);
while (!list_empty (&zombies)) {
int i;
int peer_index = 0;
cfs_time_t deadline = cfs_time_current();
int i;
int peer_index = 0;
cfs_time_t deadline = cfs_time_current();
kportal_daemonize ("ksocknal_reaper");
kportal_blockallsigs ();
kportal_daemonize ("ksocknal_reaper");
kportal_blockallsigs ();
LASSERT (conn->ksnc_tx_scheduled);
conn->ksnc_tx_ready = 1;
LASSERT (conn->ksnc_tx_scheduled);
conn->ksnc_tx_ready = 1;
- list_add_tail (&conn->ksnc_tx_list, &sched->kss_tx_conns);
+ list_add_tail(&conn->ksnc_tx_list,&sched->kss_tx_conns);
cfs_waitq_signal (&sched->kss_waitq);
spin_unlock_irqrestore (&sched->kss_lock, flags);
nenomem_conns++;
}
cfs_waitq_signal (&sched->kss_waitq);
spin_unlock_irqrestore (&sched->kss_lock, flags);
nenomem_conns++;
}
/* careful with the jiffy wrap... */
/* careful with the jiffy wrap... */
- while ((timeout = cfs_time_sub(deadline,
+ while ((timeout = cfs_time_sub(deadline,
cfs_time_current())) <= 0) {
const int n = 4;
const int p = 1;
int chunk = ksocknal_data.ksnd_peer_hash_size;
cfs_time_current())) <= 0) {
const int n = 4;
const int p = 1;
int chunk = ksocknal_data.ksnd_peer_hash_size;
/* Time to check for timeouts on a few more peers: I do
* checks every 'p' seconds on a proportion of the peer
* table and I need to check every connection 'n' times
/* Time to check for timeouts on a few more peers: I do
* checks every 'p' seconds on a proportion of the peer
* table and I need to check every connection 'n' times
* timeout interval. */
if (ksocknal_tunables.ksnd_io_timeout > n * p)
* timeout interval. */
if (ksocknal_tunables.ksnd_io_timeout > n * p)
- chunk = (chunk * n * p) /
+ chunk = (chunk * n * p) /
ksocknal_tunables.ksnd_io_timeout;
if (chunk == 0)
chunk = 1;
for (i = 0; i < chunk; i++) {
ksocknal_check_peer_timeouts (peer_index);
ksocknal_tunables.ksnd_io_timeout;
if (chunk == 0)
chunk = 1;
for (i = 0; i < chunk; i++) {
ksocknal_check_peer_timeouts (peer_index);
- peer_index = (peer_index + 1) %
+ peer_index = (peer_index + 1) %
ksocknal_data.ksnd_peer_hash_size;
}
ksocknal_data.ksnd_peer_hash_size;
}
* if any go back on my enomem list. */
timeout = SOCKNAL_ENOMEM_RETRY;
}
* if any go back on my enomem list. */
timeout = SOCKNAL_ENOMEM_RETRY;
}
- ksocknal_data.ksnd_reaper_waketime =
+ ksocknal_data.ksnd_reaper_waketime =
cfs_time_add(cfs_time_current(), timeout);
set_current_state (TASK_INTERRUPTIBLE);
cfs_time_add(cfs_time_current(), timeout);
set_current_state (TASK_INTERRUPTIBLE);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,7))
+#define tcp_wspace(sk) sk_stream_wspace(sk)
+#endif
+
static void
ksocknal_write_space (struct sock *sk)
{
static void
ksocknal_write_space (struct sock *sk)
{