[PATCH] Remove readv/writev methods and use aio_read/aio_write instead
This patch removes readv() and writev() methods and replaces them with aio_read()/aio_write() methods. Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
027445c372
commit
ee0b3e671b
40
net/socket.c
40
net/socket.c
@@ -110,10 +110,6 @@ static long compat_sock_ioctl(struct file *file,
|
||||
unsigned int cmd, unsigned long arg);
|
||||
#endif
|
||||
static int sock_fasync(int fd, struct file *filp, int on);
|
||||
static ssize_t sock_readv(struct file *file, const struct iovec *vector,
|
||||
unsigned long count, loff_t *ppos);
|
||||
static ssize_t sock_writev(struct file *file, const struct iovec *vector,
|
||||
unsigned long count, loff_t *ppos);
|
||||
static ssize_t sock_sendpage(struct file *file, struct page *page,
|
||||
int offset, size_t size, loff_t *ppos, int more);
|
||||
|
||||
@@ -136,8 +132,6 @@ static struct file_operations socket_file_ops = {
|
||||
.open = sock_no_open, /* special open code to disallow open via /proc */
|
||||
.release = sock_close,
|
||||
.fasync = sock_fasync,
|
||||
.readv = sock_readv,
|
||||
.writev = sock_writev,
|
||||
.sendpage = sock_sendpage,
|
||||
.splice_write = generic_splice_sendpage,
|
||||
};
|
||||
@@ -700,23 +694,6 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb,
|
||||
return __sock_recvmsg(iocb, sock, msg, size, msg->msg_flags);
|
||||
}
|
||||
|
||||
static ssize_t sock_readv(struct file *file, const struct iovec *iov,
|
||||
unsigned long nr_segs, loff_t *ppos)
|
||||
{
|
||||
struct kiocb iocb;
|
||||
struct sock_iocb siocb;
|
||||
struct msghdr msg;
|
||||
int ret;
|
||||
|
||||
init_sync_kiocb(&iocb, NULL);
|
||||
iocb.private = &siocb;
|
||||
|
||||
ret = do_sock_read(&msg, &iocb, file, iov, nr_segs);
|
||||
if (-EIOCBQUEUED == ret)
|
||||
ret = wait_on_sync_kiocb(&iocb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov,
|
||||
unsigned long nr_segs, loff_t pos)
|
||||
{
|
||||
@@ -759,23 +736,6 @@ static ssize_t do_sock_write(struct msghdr *msg, struct kiocb *iocb,
|
||||
return __sock_sendmsg(iocb, sock, msg, size);
|
||||
}
|
||||
|
||||
static ssize_t sock_writev(struct file *file, const struct iovec *iov,
|
||||
unsigned long nr_segs, loff_t *ppos)
|
||||
{
|
||||
struct msghdr msg;
|
||||
struct kiocb iocb;
|
||||
struct sock_iocb siocb;
|
||||
int ret;
|
||||
|
||||
init_sync_kiocb(&iocb, NULL);
|
||||
iocb.private = &siocb;
|
||||
|
||||
ret = do_sock_write(&msg, &iocb, file, iov, nr_segs);
|
||||
if (-EIOCBQUEUED == ret)
|
||||
ret = wait_on_sync_kiocb(&iocb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static ssize_t sock_aio_write(struct kiocb *iocb, const struct iovec *iov,
|
||||
unsigned long nr_segs, loff_t pos)
|
||||
{
|
||||
|
Reference in New Issue
Block a user