Merge branch 'work.aio-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull aio updates from Al Viro: "Majority of AIO stuff this cycle. aio-fsync and aio-poll, mostly. The only thing I'm holding back for a day or so is Adam's aio ioprio - his last-minute fixup is trivial (missing stub in !CONFIG_BLOCK case), but let it sit in -next for decency sake..." * 'work.aio-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits) aio: sanitize the limit checking in io_submit(2) aio: fold do_io_submit() into callers aio: shift copyin of iocb into io_submit_one() aio_read_events_ring(): make a bit more readable aio: all callers of aio_{read,write,fsync,poll} treat 0 and -EIOCBQUEUED the same way aio: take list removal to (some) callers of aio_complete() aio: add missing break for the IOCB_CMD_FDSYNC case random: convert to ->poll_mask timerfd: convert to ->poll_mask eventfd: switch to ->poll_mask pipe: convert to ->poll_mask crypto: af_alg: convert to ->poll_mask net/rxrpc: convert to ->poll_mask net/iucv: convert to ->poll_mask net/phonet: convert to ->poll_mask net/nfc: convert to ->poll_mask net/caif: convert to ->poll_mask net/bluetooth: convert to ->poll_mask net/sctp: convert to ->poll_mask net/tipc: convert to ->poll_mask ...
This commit is contained in:
@@ -316,8 +316,7 @@ int dccp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int nonblock,
|
||||
int flags, int *addr_len);
|
||||
void dccp_shutdown(struct sock *sk, int how);
|
||||
int inet_dccp_listen(struct socket *sock, int backlog);
|
||||
__poll_t dccp_poll(struct file *file, struct socket *sock,
|
||||
poll_table *wait);
|
||||
__poll_t dccp_poll_mask(struct socket *sock, __poll_t events);
|
||||
int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len);
|
||||
void dccp_req_err(struct sock *sk, u64 seq);
|
||||
|
||||
|
@@ -984,7 +984,7 @@ static const struct proto_ops inet_dccp_ops = {
|
||||
.accept = inet_accept,
|
||||
.getname = inet_getname,
|
||||
/* FIXME: work on tcp_poll to rename it to inet_csk_poll */
|
||||
.poll = dccp_poll,
|
||||
.poll_mask = dccp_poll_mask,
|
||||
.ioctl = inet_ioctl,
|
||||
/* FIXME: work on inet_listen to rename it to sock_common_listen */
|
||||
.listen = inet_dccp_listen,
|
||||
|
@@ -1070,7 +1070,7 @@ static const struct proto_ops inet6_dccp_ops = {
|
||||
.socketpair = sock_no_socketpair,
|
||||
.accept = inet_accept,
|
||||
.getname = inet6_getname,
|
||||
.poll = dccp_poll,
|
||||
.poll_mask = dccp_poll_mask,
|
||||
.ioctl = inet6_ioctl,
|
||||
.listen = inet_dccp_listen,
|
||||
.shutdown = inet_shutdown,
|
||||
|
@@ -312,20 +312,11 @@ int dccp_disconnect(struct sock *sk, int flags)
|
||||
|
||||
EXPORT_SYMBOL_GPL(dccp_disconnect);
|
||||
|
||||
/*
|
||||
* Wait for a DCCP event.
|
||||
*
|
||||
* Note that we don't need to lock the socket, as the upper poll layers
|
||||
* take care of normal races (between the test and the event) and we don't
|
||||
* go look at any of the socket buffers directly.
|
||||
*/
|
||||
__poll_t dccp_poll(struct file *file, struct socket *sock,
|
||||
poll_table *wait)
|
||||
__poll_t dccp_poll_mask(struct socket *sock, __poll_t events)
|
||||
{
|
||||
__poll_t mask;
|
||||
struct sock *sk = sock->sk;
|
||||
|
||||
sock_poll_wait(file, sk_sleep(sk), wait);
|
||||
if (sk->sk_state == DCCP_LISTEN)
|
||||
return inet_csk_listen_poll(sk);
|
||||
|
||||
@@ -367,7 +358,7 @@ __poll_t dccp_poll(struct file *file, struct socket *sock,
|
||||
return mask;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL_GPL(dccp_poll);
|
||||
EXPORT_SYMBOL_GPL(dccp_poll_mask);
|
||||
|
||||
int dccp_ioctl(struct sock *sk, int cmd, unsigned long arg)
|
||||
{
|
||||
|
Reference in New Issue
Block a user