git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was manufactured by cvs2svn to create tag
[linux-2.6.git]
/
net
/
core
/
sock.c
diff --git
a/net/core/sock.c
b/net/core/sock.c
index
92bc77a
..
78d318a
100644
(file)
--- a/
net/core/sock.c
+++ b/
net/core/sock.c
@@
-323,7
+323,10
@@
int sock_setsockopt(struct socket *sock, int level, int optname,
break;
case SO_PASSCRED:
break;
case SO_PASSCRED:
- sock->passcred = valbool;
+ if (valbool)
+ set_bit(SOCK_PASS_CRED, &sock->flags);
+ else
+ clear_bit(SOCK_PASS_CRED, &sock->flags);
break;
case SO_TIMESTAMP:
break;
case SO_TIMESTAMP:
@@
-546,7
+549,7
@@
int sock_getsockopt(struct socket *sock, int level, int optname,
break;
case SO_PASSCRED:
break;
case SO_PASSCRED:
- v.val =
sock->passcred
;
+ v.val =
test_bit(SOCK_PASS_CRED, &sock->flags)?1:0
;
break;
case SO_PEERCRED:
break;
case SO_PEERCRED:
@@
-621,6
+624,8
@@
struct sock *sk_alloc(int family, int priority, int zero_it, kmem_cache_t *slab)
sock_lock_init(sk);
}
sk->sk_slab = slab;
sock_lock_init(sk);
}
sk->sk_slab = slab;
+ sock_vx_init(sk);
+ sock_nx_init(sk);
if (security_sk_alloc(sk, family, priority)) {
kmem_cache_free(slab, sk);
if (security_sk_alloc(sk, family, priority)) {
kmem_cache_free(slab, sk);
@@
-651,6
+656,10
@@
void sk_free(struct sock *sk)
__FUNCTION__, atomic_read(&sk->sk_omem_alloc));
security_sk_free(sk);
__FUNCTION__, atomic_read(&sk->sk_omem_alloc));
security_sk_free(sk);
+ BUG_ON(sk->sk_vx_info);
+ BUG_ON(sk->sk_nx_info);
+/* clr_vx_info(&sk->sk_vx_info);
+ clr_nx_info(&sk->sk_nx_info); */
kmem_cache_free(sk->sk_slab, sk);
module_put(owner);
}
kmem_cache_free(sk->sk_slab, sk);
module_put(owner);
}
@@
-1142,6
+1151,11
@@
void sock_init_data(struct socket *sock, struct sock *sk)
sk->sk_stamp.tv_sec = -1L;
sk->sk_stamp.tv_usec = -1L;
sk->sk_stamp.tv_sec = -1L;
sk->sk_stamp.tv_usec = -1L;
+ sk->sk_vx_info = NULL;
+ sk->sk_xid = 0;
+ sk->sk_nx_info = NULL;
+ sk->sk_nid = 0;
+
atomic_set(&sk->sk_refcnt, 1);
}
atomic_set(&sk->sk_refcnt, 1);
}
@@
-1172,7
+1186,7
@@
EXPORT_SYMBOL(release_sock);
/* When > 0 there are consumers of rx skb time stamps */
atomic_t netstamp_needed = ATOMIC_INIT(0);
/* When > 0 there are consumers of rx skb time stamps */
atomic_t netstamp_needed = ATOMIC_INIT(0);
-int sock_get_timestamp(struct sock *sk, struct timeval *userstamp)
+int sock_get_timestamp(struct sock *sk, struct timeval
__user
*userstamp)
{
if (!sock_flag(sk, SOCK_TIMESTAMP))
sock_enable_timestamp(sk);
{
if (!sock_flag(sk, SOCK_TIMESTAMP))
sock_enable_timestamp(sk);