aboutsummaryrefslogtreecommitdiffstats
path: root/net/socket.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-04-12 16:54:16 -0400
committerJeff Garzik <jeff@garzik.org>2006-04-12 16:54:16 -0400
commit875999c5539999f61a45620aae0c3e5fb1d2b035 (patch)
tree4535032a8a10f5782c0aef6a620b1a624ea9f863 /net/socket.c
parent79072f38909e3d9883317238887460c39ddcc4cb (diff)
parent26ec634c31a11a003040e10b4d650495158632fd (diff)
Merge branch 'upstream'
Diffstat (limited to 'net/socket.c')
-rw-r--r--net/socket.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/net/socket.c b/net/socket.c
index fcd77eac0ccf..23898f45f713 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -119,7 +119,6 @@ static ssize_t sock_writev(struct file *file, const struct iovec *vector,
119static ssize_t sock_sendpage(struct file *file, struct page *page, 119static ssize_t sock_sendpage(struct file *file, struct page *page,
120 int offset, size_t size, loff_t *ppos, int more); 120 int offset, size_t size, loff_t *ppos, int more);
121 121
122
123/* 122/*
124 * Socket files have a set of 'special' operations as well as the generic file ones. These don't appear 123 * Socket files have a set of 'special' operations as well as the generic file ones. These don't appear
125 * in the operation structures but are done directly via the socketcall() multiplexor. 124 * in the operation structures but are done directly via the socketcall() multiplexor.
@@ -141,7 +140,8 @@ static struct file_operations socket_file_ops = {
141 .fasync = sock_fasync, 140 .fasync = sock_fasync,
142 .readv = sock_readv, 141 .readv = sock_readv,
143 .writev = sock_writev, 142 .writev = sock_writev,
144 .sendpage = sock_sendpage 143 .sendpage = sock_sendpage,
144 .splice_write = generic_splice_sendpage,
145}; 145};
146 146
147/* 147/*
@@ -1414,7 +1414,8 @@ asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, int _
1414 newfd = sock_alloc_fd(&newfile); 1414 newfd = sock_alloc_fd(&newfile);
1415 if (unlikely(newfd < 0)) { 1415 if (unlikely(newfd < 0)) {
1416 err = newfd; 1416 err = newfd;
1417 goto out_release; 1417 sock_release(newsock);
1418 goto out_put;
1418 } 1419 }
1419 1420
1420 err = sock_attach_fd(newsock, newfile); 1421 err = sock_attach_fd(newsock, newfile);
@@ -1451,10 +1452,8 @@ out_put:
1451out: 1452out:
1452 return err; 1453 return err;
1453out_fd: 1454out_fd:
1454 put_filp(newfile); 1455 fput(newfile);
1455 put_unused_fd(newfd); 1456 put_unused_fd(newfd);
1456out_release:
1457 sock_release(newsock);
1458 goto out_put; 1457 goto out_put;
1459} 1458}
1460 1459
@@ -2133,7 +2132,7 @@ void socket_seq_show(struct seq_file *seq)
2133 int cpu; 2132 int cpu;
2134 int counter = 0; 2133 int counter = 0;
2135 2134
2136 for_each_cpu(cpu) 2135 for_each_possible_cpu(cpu)
2137 counter += per_cpu(sockets_in_use, cpu); 2136 counter += per_cpu(sockets_in_use, cpu);
2138 2137
2139 /* It can be negative, by the way. 8) */ 2138 /* It can be negative, by the way. 8) */