tun: Update classid on packet injection
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 24 May 2010 07:14:10 +0000 (00:14 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 May 2010 07:14:10 +0000 (00:14 -0700)
This patch makes tun update its socket classid every time we
inject a packet into the network stack.  This is so that any
updates made by the admin to the process writing packets to
tun is effected.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tun.c
net/core/sock.c

index 97b25533e5fb1dd741bc7a2541ed598014707a99..8793c2bf7f1572e3196ca9c0a2415d0baea427fc 100644 (file)
@@ -526,6 +526,8 @@ static inline struct sk_buff *tun_alloc_skb(struct tun_struct *tun,
        struct sk_buff *skb;
        int err;
 
+       sock_update_classid(sk);
+
        /* Under a page?  Don't bother with paged skb. */
        if (prepad + len < PAGE_SIZE || !linear)
                linear = len;
index a05ae7f9771ea7315dd7ddfeb5243dbe6e8e356b..37fe9b6adaded0fc2c278886f1cd0a5bdf86742c 100644 (file)
@@ -1064,6 +1064,7 @@ void sock_update_classid(struct sock *sk)
        if (classid && classid != sk->sk_classid)
                sk->sk_classid = classid;
 }
+EXPORT_SYMBOL(sock_update_classid);
 #endif
 
 /**