diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-12-13 13:15:39 -0500 | 
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-12-13 13:15:39 -0500 | 
| commit | da8543ef125afc7bba4da526b61a1ae07dc25109 (patch) | |
| tree | 6aec5867f8e054c22c6208032280ed1434c14a58 /net/decnet/af_decnet.c | |
| parent | ec637e3ffb6b978143652477c7c5f96c9519b691 (diff) | |
| parent | 90ac8f7741be4ff66de1f52904f4f67f272f74ce (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'net/decnet/af_decnet.c')
| -rw-r--r-- | net/decnet/af_decnet.c | 25 | 
1 files changed, 22 insertions, 3 deletions
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index f89e55f814d9..d402e9020c68 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c  | |||
| @@ -153,6 +153,7 @@ static struct proto_ops dn_proto_ops; | |||
| 153 | static DEFINE_RWLOCK(dn_hash_lock); | 153 | static DEFINE_RWLOCK(dn_hash_lock); | 
| 154 | static struct hlist_head dn_sk_hash[DN_SK_HASH_SIZE]; | 154 | static struct hlist_head dn_sk_hash[DN_SK_HASH_SIZE]; | 
| 155 | static struct hlist_head dn_wild_sk; | 155 | static struct hlist_head dn_wild_sk; | 
| 156 | static atomic_t decnet_memory_allocated; | ||
| 156 | 157 | ||
| 157 | static int __dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen, int flags); | 158 | static int __dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen, int flags); | 
| 158 | static int __dn_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen, int flags); | 159 | static int __dn_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen, int flags); | 
| @@ -446,10 +447,26 @@ static void dn_destruct(struct sock *sk) | |||
| 446 | dst_release(xchg(&sk->sk_dst_cache, NULL)); | 447 | dst_release(xchg(&sk->sk_dst_cache, NULL)); | 
| 447 | } | 448 | } | 
| 448 | 449 | ||
| 450 | static int dn_memory_pressure; | ||
| 451 | |||
| 452 | static void dn_enter_memory_pressure(void) | ||
| 453 | { | ||
| 454 | if (!dn_memory_pressure) { | ||
| 455 | dn_memory_pressure = 1; | ||
| 456 | } | ||
| 457 | } | ||
| 458 | |||
| 449 | static struct proto dn_proto = { | 459 | static struct proto dn_proto = { | 
| 450 | .name = "DECNET", | 460 | .name = "NSP", | 
| 451 | .owner = THIS_MODULE, | 461 | .owner = THIS_MODULE, | 
| 452 | .obj_size = sizeof(struct dn_sock), | 462 | .enter_memory_pressure = dn_enter_memory_pressure, | 
| 463 | .memory_pressure = &dn_memory_pressure, | ||
| 464 | .memory_allocated = &decnet_memory_allocated, | ||
| 465 | .sysctl_mem = sysctl_decnet_mem, | ||
| 466 | .sysctl_wmem = sysctl_decnet_wmem, | ||
| 467 | .sysctl_rmem = sysctl_decnet_rmem, | ||
| 468 | .max_header = DN_MAX_NSP_DATA_HEADER + 64, | ||
| 469 | .obj_size = sizeof(struct dn_sock), | ||
| 453 | }; | 470 | }; | 
| 454 | 471 | ||
| 455 | static struct sock *dn_alloc_sock(struct socket *sock, gfp_t gfp) | 472 | static struct sock *dn_alloc_sock(struct socket *sock, gfp_t gfp) | 
| @@ -470,6 +487,8 @@ static struct sock *dn_alloc_sock(struct socket *sock, gfp_t gfp) | |||
| 470 | sk->sk_family = PF_DECnet; | 487 | sk->sk_family = PF_DECnet; | 
| 471 | sk->sk_protocol = 0; | 488 | sk->sk_protocol = 0; | 
| 472 | sk->sk_allocation = gfp; | 489 | sk->sk_allocation = gfp; | 
| 490 | sk->sk_sndbuf = sysctl_decnet_wmem[1]; | ||
| 491 | sk->sk_rcvbuf = sysctl_decnet_rmem[1]; | ||
| 473 | 492 | ||
| 474 | /* Initialization of DECnet Session Control Port */ | 493 | /* Initialization of DECnet Session Control Port */ | 
| 475 | scp = DN_SK(sk); | 494 | scp = DN_SK(sk); | 
