|
@@ -1427,12 +1427,15 @@ out:
|
|
static void smap_write_space(struct sock *sk)
|
|
static void smap_write_space(struct sock *sk)
|
|
{
|
|
{
|
|
struct smap_psock *psock;
|
|
struct smap_psock *psock;
|
|
|
|
+ void (*write_space)(struct sock *sk);
|
|
|
|
|
|
rcu_read_lock();
|
|
rcu_read_lock();
|
|
psock = smap_psock_sk(sk);
|
|
psock = smap_psock_sk(sk);
|
|
if (likely(psock && test_bit(SMAP_TX_RUNNING, &psock->state)))
|
|
if (likely(psock && test_bit(SMAP_TX_RUNNING, &psock->state)))
|
|
schedule_work(&psock->tx_work);
|
|
schedule_work(&psock->tx_work);
|
|
|
|
+ write_space = psock->save_write_space;
|
|
rcu_read_unlock();
|
|
rcu_read_unlock();
|
|
|
|
+ write_space(sk);
|
|
}
|
|
}
|
|
|
|
|
|
static void smap_stop_sock(struct smap_psock *psock, struct sock *sk)
|
|
static void smap_stop_sock(struct smap_psock *psock, struct sock *sk)
|