diff options
author | Badari Pulavarty <pbadari@us.ibm.com> | 2006-10-01 02:28:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-01 03:39:28 -0400 |
commit | ee0b3e671baff681d69fbf0db33b47603c0a8280 (patch) | |
tree | 3202ff815b2196c6c353bc5b28d7a2800df273ec /net/socket.c | |
parent | 027445c37282bc1ed26add45e573ad2d3e4860a5 (diff) |
[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>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/net/socket.c b/net/socket.c index df92e4252749..01918f7a301a 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -110,10 +110,6 @@ static long compat_sock_ioctl(struct file *file, | |||
110 | unsigned int cmd, unsigned long arg); | 110 | unsigned int cmd, unsigned long arg); |
111 | #endif | 111 | #endif |
112 | static int sock_fasync(int fd, struct file *filp, int on); | 112 | static int sock_fasync(int fd, struct file *filp, int on); |
113 | static ssize_t sock_readv(struct file *file, const struct iovec *vector, | ||
114 | unsigned long count, loff_t *ppos); | ||
115 | static ssize_t sock_writev(struct file *file, const struct iovec *vector, | ||
116 | unsigned long count, loff_t *ppos); | ||
117 | static ssize_t sock_sendpage(struct file *file, struct page *page, | 113 | static ssize_t sock_sendpage(struct file *file, struct page *page, |
118 | int offset, size_t size, loff_t *ppos, int more); | 114 | int offset, size_t size, loff_t *ppos, int more); |
119 | 115 | ||
@@ -136,8 +132,6 @@ static struct file_operations socket_file_ops = { | |||
136 | .open = sock_no_open, /* special open code to disallow open via /proc */ | 132 | .open = sock_no_open, /* special open code to disallow open via /proc */ |
137 | .release = sock_close, | 133 | .release = sock_close, |
138 | .fasync = sock_fasync, | 134 | .fasync = sock_fasync, |
139 | .readv = sock_readv, | ||
140 | .writev = sock_writev, | ||
141 | .sendpage = sock_sendpage, | 135 | .sendpage = sock_sendpage, |
142 | .splice_write = generic_splice_sendpage, | 136 | .splice_write = generic_splice_sendpage, |
143 | }; | 137 | }; |
@@ -700,23 +694,6 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb, | |||
700 | return __sock_recvmsg(iocb, sock, msg, size, msg->msg_flags); | 694 | return __sock_recvmsg(iocb, sock, msg, size, msg->msg_flags); |
701 | } | 695 | } |
702 | 696 | ||
703 | static ssize_t sock_readv(struct file *file, const struct iovec *iov, | ||
704 | unsigned long nr_segs, loff_t *ppos) | ||
705 | { | ||
706 | struct kiocb iocb; | ||
707 | struct sock_iocb siocb; | ||
708 | struct msghdr msg; | ||
709 | int ret; | ||
710 | |||
711 | init_sync_kiocb(&iocb, NULL); | ||
712 | iocb.private = &siocb; | ||
713 | |||
714 | ret = do_sock_read(&msg, &iocb, file, iov, nr_segs); | ||
715 | if (-EIOCBQUEUED == ret) | ||
716 | ret = wait_on_sync_kiocb(&iocb); | ||
717 | return ret; | ||
718 | } | ||
719 | |||
720 | static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov, | 697 | static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov, |
721 | unsigned long nr_segs, loff_t pos) | 698 | unsigned long nr_segs, loff_t pos) |
722 | { | 699 | { |
@@ -759,23 +736,6 @@ static ssize_t do_sock_write(struct msghdr *msg, struct kiocb *iocb, | |||
759 | return __sock_sendmsg(iocb, sock, msg, size); | 736 | return __sock_sendmsg(iocb, sock, msg, size); |
760 | } | 737 | } |
761 | 738 | ||
762 | static ssize_t sock_writev(struct file *file, const struct iovec *iov, | ||
763 | unsigned long nr_segs, loff_t *ppos) | ||
764 | { | ||
765 | struct msghdr msg; | ||
766 | struct kiocb iocb; | ||
767 | struct sock_iocb siocb; | ||
768 | int ret; | ||
769 | |||
770 | init_sync_kiocb(&iocb, NULL); | ||
771 | iocb.private = &siocb; | ||
772 | |||
773 | ret = do_sock_write(&msg, &iocb, file, iov, nr_segs); | ||
774 | if (-EIOCBQUEUED == ret) | ||
775 | ret = wait_on_sync_kiocb(&iocb); | ||
776 | return ret; | ||
777 | } | ||
778 | |||
779 | static ssize_t sock_aio_write(struct kiocb *iocb, const struct iovec *iov, | 739 | static ssize_t sock_aio_write(struct kiocb *iocb, const struct iovec *iov, |
780 | unsigned long nr_segs, loff_t pos) | 740 | unsigned long nr_segs, loff_t pos) |
781 | { | 741 | { |