projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] x86_64: remove unused gart header file
[powerpc.git]
/
net
/
socket.c
diff --git
a/net/socket.c
b/net/socket.c
index
fcd77ea
..
565f5e8
100644
(file)
--- a/
net/socket.c
+++ b/
net/socket.c
@@
-119,7
+119,6
@@
static ssize_t sock_writev(struct file *file, const struct iovec *vector,
static ssize_t sock_sendpage(struct file *file, struct page *page,
int offset, size_t size, loff_t *ppos, int more);
static ssize_t sock_sendpage(struct file *file, struct page *page,
int offset, size_t size, loff_t *ppos, int more);
-
/*
* Socket files have a set of 'special' operations as well as the generic file ones. These don't appear
* in the operation structures but are done directly via the socketcall() multiplexor.
/*
* Socket files have a set of 'special' operations as well as the generic file ones. These don't appear
* in the operation structures but are done directly via the socketcall() multiplexor.
@@
-141,7
+140,8
@@
static struct file_operations socket_file_ops = {
.fasync = sock_fasync,
.readv = sock_readv,
.writev = sock_writev,
.fasync = sock_fasync,
.readv = sock_readv,
.writev = sock_writev,
- .sendpage = sock_sendpage
+ .sendpage = sock_sendpage,
+ .splice_write = generic_splice_sendpage,
};
/*
};
/*
@@
-267,6
+267,8
@@
int move_addr_to_user(void *kaddr, int klen, void __user *uaddr, int __user *ule
return -EINVAL;
if(len)
{
return -EINVAL;
if(len)
{
+ if (audit_sockaddr(klen, kaddr))
+ return -ENOMEM;
if(copy_to_user(uaddr,kaddr,len))
return -EFAULT;
}
if(copy_to_user(uaddr,kaddr,len))
return -EFAULT;
}
@@
-333,10
+335,11
@@
static struct super_operations sockfs_ops = {
.statfs = simple_statfs,
};
.statfs = simple_statfs,
};
-static
struct super_block *
sockfs_get_sb(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
+static
int
sockfs_get_sb(struct file_system_type *fs_type,
+ int flags, const char *dev_name, void *data
, struct vfsmount *mnt
)
{
{
- return get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC);
+ return get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC,
+ mnt);
}
static struct vfsmount *sock_mnt __read_mostly;
}
static struct vfsmount *sock_mnt __read_mostly;
@@
-490,6
+493,7
@@
static struct socket *sockfd_lookup_light(int fd, int *err, int *fput_needed)
struct file *file;
struct socket *sock;
struct file *file;
struct socket *sock;
+ *err = -EBADF;
file = fget_light(fd, fput_needed);
if (file) {
sock = sock_from_file(file, err);
file = fget_light(fd, fput_needed);
if (file) {
sock = sock_from_file(file, err);
@@
-1414,7
+1418,8
@@
asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, int _
newfd = sock_alloc_fd(&newfile);
if (unlikely(newfd < 0)) {
err = newfd;
newfd = sock_alloc_fd(&newfile);
if (unlikely(newfd < 0)) {
err = newfd;
- goto out_release;
+ sock_release(newsock);
+ goto out_put;
}
err = sock_attach_fd(newsock, newfile);
}
err = sock_attach_fd(newsock, newfile);
@@
-1451,10
+1456,8
@@
out_put:
out:
return err;
out_fd:
out:
return err;
out_fd:
-
put_filp
(newfile);
+
fput
(newfile);
put_unused_fd(newfd);
put_unused_fd(newfd);
-out_release:
- sock_release(newsock);
goto out_put;
}
goto out_put;
}
@@
-2133,7
+2136,7
@@
void socket_seq_show(struct seq_file *seq)
int cpu;
int counter = 0;
int cpu;
int counter = 0;
- for_each_cpu(cpu)
+ for_each_
possible_
cpu(cpu)
counter += per_cpu(sockets_in_use, cpu);
/* It can be negative, by the way. 8) */
counter += per_cpu(sockets_in_use, cpu);
/* It can be negative, by the way. 8) */