Re: [PATCH] f_op->poll() without lock_kernel()

From: Alexander Viro (viro@math.psu.edu)
Date: Fri Apr 21 2000 - 22:48:52 EST


On Fri, 21 Apr 2000, David S. Miller wrote:

> c) ->mmap() is nontrivial only for AF_PACKET and I'm not
> too happy about its abuse there.
>
> Some day it may be fun to mmap tcp sockets. It has to stay.

Hey, it's your part of the tree, but... what kind of semantics one might
want for mmap() on TCP link? I'm really curious...

> [patch being tested right now; the question being whether we want to keep
> ->fcntl() or not]
>
> I think we don't want to keep it.

There you go, then. ->fcntl() removed, call replaced with sock_no_fcntl(),
proto_ops and proto switched to new syntax. See if it looks sane for you.
                                                        Cheers,
                                                                Al

diff -urN linux-2.3.99-pre6-5/include/linux/net.h linux-bird.net/include/linux/net.h
--- linux-2.3.99-pre6-5/include/linux/net.h Tue Apr 11 18:09:50 2000
+++ linux-bird.net/include/linux/net.h Fri Apr 21 23:17:29 2000
@@ -104,8 +104,6 @@
                          char *optval, int optlen);
   int (*getsockopt) (struct socket *sock, int level, int optname,
                          char *optval, int *optlen);
- int (*fcntl) (struct socket *sock, unsigned int cmd,
- unsigned long arg);
   int (*sendmsg) (struct socket *sock, struct msghdr *m, int total_len, struct scm_cookie *scm);
   int (*recvmsg) (struct socket *sock, struct msghdr *m, int total_len, int flags, struct scm_cookie *scm);
   int (*mmap) (struct file *file, struct socket *sock, struct vm_area_struct * vma);
@@ -194,8 +192,6 @@
                          char *optval, int optlen), (sock, level, optname, optval, optlen)) \
 SOCKCALL_WRAP(name, getsockopt, (struct socket *sock, int level, int optname, \
                          char *optval, int *optlen), (sock, level, optname, optval, optlen)) \
-SOCKCALL_WRAP(name, fcntl, (struct socket *sock, unsigned int cmd, \
- unsigned long arg), (sock, cmd, arg)) \
 SOCKCALL_WRAP(name, sendmsg, (struct socket *sock, struct msghdr *m, int len, struct scm_cookie *scm), \
               (sock, m, len, scm)) \
 SOCKCALL_WRAP(name, recvmsg, (struct socket *sock, struct msghdr *m, int len, int flags, struct scm_cookie *scm), \
@@ -203,25 +199,24 @@
 SOCKCALL_WRAP(name, mmap, (struct file *file, struct socket *sock, struct vm_area_struct *vma), \
               (file, sock, vma)) \
               \
-static struct proto_ops name##_ops = { \
- fam, \
- \
- __lock_##name##_release, \
- __lock_##name##_bind, \
- __lock_##name##_connect, \
- __lock_##name##_socketpair, \
- __lock_##name##_accept, \
- __lock_##name##_getname, \
- __lock_##name##_poll, \
- __lock_##name##_ioctl, \
- __lock_##name##_listen, \
- __lock_##name##_shutdown, \
- __lock_##name##_setsockopt, \
- __lock_##name##_getsockopt, \
- __lock_##name##_fcntl, \
- __lock_##name##_sendmsg, \
- __lock_##name##_recvmsg, \
- __lock_##name##_mmap, \
+static struct proto_ops name##_ops = { \
+ family: fam, \
+ \
+ release: __lock_##name##_release, \
+ bind: __lock_##name##_bind, \
+ connect: __lock_##name##_connect, \
+ socketpair: __lock_##name##_socketpair, \
+ accept: __lock_##name##_accept, \
+ getname: __lock_##name##_getname, \
+ poll: __lock_##name##_poll, \
+ ioctl: __lock_##name##_ioctl, \
+ listen: __lock_##name##_listen, \
+ shutdown: __lock_##name##_shutdown, \
+ setsockopt: __lock_##name##_setsockopt, \
+ getsockopt: __lock_##name##_getsockopt, \
+ sendmsg: __lock_##name##_sendmsg, \
+ recvmsg: __lock_##name##_recvmsg, \
+ mmap: __lock_##name##_mmap, \
 };
 #endif
 
diff -urN linux-2.3.99-pre6-5/include/net/af_unix.h linux-bird.net/include/net/af_unix.h
--- linux-2.3.99-pre6-5/include/net/af_unix.h Mon Aug 23 13:01:02 1999
+++ linux-bird.net/include/net/af_unix.h Fri Apr 21 22:05:14 2000
@@ -1,7 +1,6 @@
 #ifndef __LINUX_NET_AFUNIX_H
 #define __LINUX_NET_AFUNIX_H
 extern void unix_proto_init(struct net_proto *pro);
-extern struct proto_ops unix_proto_ops;
 extern void unix_inflight(struct file *fp);
 extern void unix_notinflight(struct file *fp);
 typedef struct sock unix_socket;
diff -urN linux-2.3.99-pre6-5/net/appletalk/ddp.c linux-bird.net/net/appletalk/ddp.c
--- linux-2.3.99-pre6-5/net/appletalk/ddp.c Fri Apr 21 21:59:06 2000
+++ linux-bird.net/net/appletalk/ddp.c Fri Apr 21 23:19:24 2000
@@ -2055,24 +2055,23 @@
 
 static struct proto_ops SOCKOPS_WRAPPED(atalk_dgram_ops)=
 {
- PF_APPLETALK,
+ family: PF_APPLETALK,
 
- atalk_release,
- atalk_bind,
- atalk_connect,
- sock_no_socketpair,
- sock_no_accept,
- atalk_getname,
- datagram_poll,
- atalk_ioctl,
- sock_no_listen,
- sock_no_shutdown,
- sock_no_setsockopt,
- sock_no_getsockopt,
- sock_no_fcntl,
- atalk_sendmsg,
- atalk_recvmsg,
- sock_no_mmap
+ release: atalk_release,
+ bind: atalk_bind,
+ connect: atalk_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: atalk_getname,
+ poll: datagram_poll,
+ ioctl: atalk_ioctl,
+ listen: sock_no_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: sock_no_setsockopt,
+ getsockopt: sock_no_getsockopt,
+ sendmsg: atalk_sendmsg,
+ recvmsg: atalk_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>
diff -urN linux-2.3.99-pre6-5/net/atm/pvc.c linux-bird.net/net/atm/pvc.c
--- linux-2.3.99-pre6-5/net/atm/pvc.c Fri Mar 24 03:22:21 2000
+++ linux-bird.net/net/atm/pvc.c Fri Apr 21 23:18:11 2000
@@ -78,23 +78,23 @@
 
 
 static struct proto_ops SOCKOPS_WRAPPED(pvc_proto_ops) = {
- PF_ATMPVC,
- atm_release,
- pvc_bind,
- pvc_connect,
- sock_no_socketpair,
- sock_no_accept,
- pvc_getname,
- atm_poll,
- atm_ioctl,
- sock_no_listen,
- pvc_shutdown,
- atm_setsockopt,
- atm_getsockopt,
- sock_no_fcntl,
- atm_sendmsg,
- atm_recvmsg,
- sock_no_mmap
+ family: PF_ATMPVC,
+
+ release: atm_release,
+ bind: pvc_bind,
+ connect: pvc_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: pvc_getname,
+ poll: atm_poll,
+ ioctl: atm_ioctl,
+ listen: sock_no_listen,
+ shutdown: pvc_shutdown,
+ setsockopt: atm_setsockopt,
+ getsockopt: atm_getsockopt,
+ sendmsg: atm_sendmsg,
+ recvmsg: atm_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 
diff -urN linux-2.3.99-pre6-5/net/atm/svc.c linux-bird.net/net/atm/svc.c
--- linux-2.3.99-pre6-5/net/atm/svc.c Fri Mar 24 03:22:21 2000
+++ linux-bird.net/net/atm/svc.c Fri Apr 21 23:17:46 2000
@@ -397,23 +397,23 @@
 
 
 static struct proto_ops SOCKOPS_WRAPPED(svc_proto_ops) = {
- PF_ATMSVC,
- svc_release,
- svc_bind,
- svc_connect,
- sock_no_socketpair,
- svc_accept,
- svc_getname,
- atm_poll,
- atm_ioctl,
- svc_listen,
- svc_shutdown,
- svc_setsockopt,
- svc_getsockopt,
- sock_no_fcntl,
- atm_sendmsg,
- atm_recvmsg,
- sock_no_mmap
+ family: PF_ATMSVC,
+
+ release: svc_release,
+ bind: svc_bind,
+ connect: svc_connect,
+ socketpair: sock_no_socketpair,
+ accept: svc_accept,
+ getname: svc_getname,
+ poll: atm_poll,
+ ioctl: atm_ioctl,
+ listen: svc_listen,
+ shutdown: svc_shutdown,
+ setsockopt: svc_setsockopt,
+ getsockopt: svc_getsockopt,
+ sendmsg: atm_sendmsg,
+ recvmsg: atm_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 
diff -urN linux-2.3.99-pre6-5/net/ax25/af_ax25.c linux-bird.net/net/ax25/af_ax25.c
--- linux-2.3.99-pre6-5/net/ax25/af_ax25.c Sun Mar 12 22:21:26 2000
+++ linux-bird.net/net/ax25/af_ax25.c Fri Apr 21 23:19:17 2000
@@ -1795,24 +1795,23 @@
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(ax25_proto_ops) = {
- PF_AX25,
+ family: PF_AX25,
 
- ax25_release,
- ax25_bind,
- ax25_connect,
- sock_no_socketpair,
- ax25_accept,
- ax25_getname,
- datagram_poll,
- ax25_ioctl,
- ax25_listen,
- ax25_shutdown,
- ax25_setsockopt,
- ax25_getsockopt,
- sock_no_fcntl,
- ax25_sendmsg,
- ax25_recvmsg,
- sock_no_mmap
+ release: ax25_release,
+ bind: ax25_bind,
+ connect: ax25_connect,
+ socketpair: sock_no_socketpair,
+ accept: ax25_accept,
+ getname: ax25_getname,
+ poll: datagram_poll,
+ ioctl: ax25_ioctl,
+ listen: ax25_listen,
+ shutdown: ax25_shutdown,
+ setsockopt: ax25_setsockopt,
+ getsockopt: ax25_getsockopt,
+ sendmsg: ax25_sendmsg,
+ recvmsg: ax25_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>
diff -urN linux-2.3.99-pre6-5/net/decnet/af_decnet.c linux-bird.net/net/decnet/af_decnet.c
--- linux-2.3.99-pre6-5/net/decnet/af_decnet.c Fri Apr 21 21:59:07 2000
+++ linux-bird.net/net/decnet/af_decnet.c Fri Apr 21 23:18:57 2000
@@ -2032,24 +2032,23 @@
 };
 
 static struct proto_ops dn_proto_ops = {
- AF_DECnet,
+ family: AF_DECnet,
 
- dn_release,
- dn_bind,
- dn_connect,
- sock_no_socketpair,
- dn_accept,
- dn_getname,
- dn_poll,
- dn_ioctl,
- dn_listen,
- dn_shutdown,
- dn_setsockopt,
- dn_getsockopt,
- sock_no_fcntl,
- dn_sendmsg,
- dn_recvmsg,
- sock_no_mmap
+ release: dn_release,
+ bind: dn_bind,
+ connect: dn_connect,
+ socketpair: sock_no_socketpair,
+ accept: dn_accept,
+ getname: dn_getname,
+ poll: dn_poll,
+ ioctl: dn_ioctl,
+ listen: dn_listen,
+ shutdown: dn_shutdown,
+ setsockopt: dn_setsockopt,
+ getsockopt: dn_getsockopt,
+ sendmsg: dn_sendmsg,
+ recvmsg: dn_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #ifdef CONFIG_SYSCTL
diff -urN linux-2.3.99-pre6-5/net/econet/af_econet.c linux-bird.net/net/econet/af_econet.c
--- linux-2.3.99-pre6-5/net/econet/af_econet.c Fri Apr 21 21:59:07 2000
+++ linux-bird.net/net/econet/af_econet.c Fri Apr 21 23:18:42 2000
@@ -705,24 +705,23 @@
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(econet_ops) = {
- PF_ECONET,
+ family: PF_ECONET,
 
- econet_release,
- econet_bind,
- sock_no_connect,
- sock_no_socketpair,
- sock_no_accept,
- econet_getname,
- datagram_poll,
- econet_ioctl,
- sock_no_listen,
- sock_no_shutdown,
- sock_no_setsockopt,
- sock_no_getsockopt,
- sock_no_fcntl,
- econet_sendmsg,
- econet_recvmsg,
- sock_no_mmap
+ release: econet_release,
+ bind: econet_bind,
+ connect: sock_no_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: econet_getname,
+ poll: datagram_poll,
+ ioctl: econet_ioctl,
+ listen: sock_no_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: sock_no_setsockopt,
+ getsockopt: sock_no_getsockopt,
+ sendmsg: econet_sendmsg,
+ recvmsg: econet_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>
diff -urN linux-2.3.99-pre6-5/net/ipv4/af_inet.c linux-bird.net/net/ipv4/af_inet.c
--- linux-2.3.99-pre6-5/net/ipv4/af_inet.c Tue Apr 11 18:09:52 2000
+++ linux-bird.net/net/ipv4/af_inet.c Fri Apr 21 23:19:12 2000
@@ -893,45 +893,43 @@
 }
 
 struct proto_ops inet_stream_ops = {
- PF_INET,
+ family: PF_INET,
 
- inet_release,
- inet_bind,
- inet_stream_connect,
- sock_no_socketpair,
- inet_accept,
- inet_getname,
- tcp_poll,
- inet_ioctl,
- inet_listen,
- inet_shutdown,
- inet_setsockopt,
- inet_getsockopt,
- sock_no_fcntl,
- inet_sendmsg,
- inet_recvmsg,
- sock_no_mmap
+ release: inet_release,
+ bind: inet_bind,
+ connect: inet_stream_connect,
+ socketpair: sock_no_socketpair,
+ accept: inet_accept,
+ getname: inet_getname,
+ poll: tcp_poll,
+ ioctl: inet_ioctl,
+ listen: inet_listen,
+ shutdown: inet_shutdown,
+ setsockopt: inet_setsockopt,
+ getsockopt: inet_getsockopt,
+ sendmsg: inet_sendmsg,
+ recvmsg: inet_recvmsg,
+ mmap: sock_no_mmap
 };
 
 struct proto_ops inet_dgram_ops = {
- PF_INET,
+ family: PF_INET,
 
- inet_release,
- inet_bind,
- inet_dgram_connect,
- sock_no_socketpair,
- sock_no_accept,
- inet_getname,
- datagram_poll,
- inet_ioctl,
- sock_no_listen,
- inet_shutdown,
- inet_setsockopt,
- inet_getsockopt,
- sock_no_fcntl,
- inet_sendmsg,
- inet_recvmsg,
- sock_no_mmap
+ release: inet_release,
+ bind: inet_bind,
+ connect: inet_dgram_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: inet_getname,
+ poll: datagram_poll,
+ ioctl: inet_ioctl,
+ listen: sock_no_listen,
+ shutdown: inet_shutdown,
+ setsockopt: inet_setsockopt,
+ getsockopt: inet_getsockopt,
+ sendmsg: inet_sendmsg,
+ recvmsg: inet_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 struct net_proto_family inet_family_ops = {
diff -urN linux-2.3.99-pre6-5/net/ipv4/raw.c linux-bird.net/net/ipv4/raw.c
--- linux-2.3.99-pre6-5/net/ipv4/raw.c Sat Jan 22 14:54:57 2000
+++ linux-bird.net/net/ipv4/raw.c Fri Apr 21 22:05:15 2000
@@ -644,26 +644,20 @@
 }
 
 struct proto raw_prot = {
- raw_close, /* close */
- udp_connect, /* connect */
- udp_disconnect, /* disconnect */
- NULL, /* accept */
+ name: "RAW",
+ close: raw_close,
+ connect: udp_connect,
+ disconnect: udp_disconnect,
 #ifdef CONFIG_IP_MROUTE
- ipmr_ioctl, /* ioctl */
-#else
- NULL, /* ioctl */
+ ioctl: ipmr_ioctl,
 #endif
- raw_init, /* init */
- NULL, /* destroy */
- NULL, /* shutdown */
- raw_setsockopt, /* setsockopt */
- raw_getsockopt, /* getsockopt */
- raw_sendmsg, /* sendmsg */
- raw_recvmsg, /* recvmsg */
- raw_bind, /* bind */
- raw_rcv_skb, /* backlog_rcv */
- raw_v4_hash, /* hash */
- raw_v4_unhash, /* unhash */
- NULL, /* get_port */
- "RAW", /* name */
+ init: raw_init,
+ setsockopt: raw_setsockopt,
+ getsockopt: raw_getsockopt,
+ sendmsg: raw_sendmsg,
+ recvmsg: raw_recvmsg,
+ bind: raw_bind,
+ backlog_rcv: raw_rcv_skb,
+ hash: raw_v4_hash,
+ unhash: raw_v4_unhash,
 };
diff -urN linux-2.3.99-pre6-5/net/ipv4/tcp_ipv4.c linux-bird.net/net/ipv4/tcp_ipv4.c
--- linux-2.3.99-pre6-5/net/ipv4/tcp_ipv4.c Fri Apr 21 21:59:09 2000
+++ linux-bird.net/net/ipv4/tcp_ipv4.c Fri Apr 21 22:05:15 2000
@@ -2172,24 +2172,23 @@
 }
 
 struct proto tcp_prot = {
- tcp_close, /* close */
- tcp_v4_connect, /* connect */
- tcp_disconnect, /* disconnect */
- tcp_accept, /* accept */
- tcp_ioctl, /* ioctl */
- tcp_v4_init_sock, /* init */
- tcp_v4_destroy_sock, /* destroy */
- tcp_shutdown, /* shutdown */
- tcp_setsockopt, /* setsockopt */
- tcp_getsockopt, /* getsockopt */
- tcp_sendmsg, /* sendmsg */
- tcp_recvmsg, /* recvmsg */
- NULL, /* bind */
- tcp_v4_do_rcv, /* backlog_rcv */
- tcp_v4_hash, /* hash */
- tcp_unhash, /* unhash */
- tcp_v4_get_port, /* get_port */
- "TCP", /* name */
+ name: "TCP",
+ close: tcp_close,
+ connect: tcp_v4_connect,
+ disconnect: tcp_disconnect,
+ accept: tcp_accept,
+ ioctl: tcp_ioctl,
+ init: tcp_v4_init_sock,
+ destroy: tcp_v4_destroy_sock,
+ shutdown: tcp_shutdown,
+ setsockopt: tcp_setsockopt,
+ getsockopt: tcp_getsockopt,
+ sendmsg: tcp_sendmsg,
+ recvmsg: tcp_recvmsg,
+ backlog_rcv: tcp_v4_do_rcv,
+ hash: tcp_v4_hash,
+ unhash: tcp_unhash,
+ get_port: tcp_v4_get_port,
 };
 
 
diff -urN linux-2.3.99-pre6-5/net/ipv4/udp.c linux-bird.net/net/ipv4/udp.c
--- linux-2.3.99-pre6-5/net/ipv4/udp.c Sun Feb 27 21:45:10 2000
+++ linux-bird.net/net/ipv4/udp.c Fri Apr 21 22:05:15 2000
@@ -1041,22 +1041,17 @@
 }
 
 struct proto udp_prot = {
- udp_close, /* close */
- udp_connect, /* connect */
- udp_disconnect, /* disconnect */
- NULL, /* accept */
- udp_ioctl, /* ioctl */
- NULL, /* init */
- NULL, /* destroy */
- NULL, /* shutdown */
- ip_setsockopt, /* setsockopt */
- ip_getsockopt, /* getsockopt */
- udp_sendmsg, /* sendmsg */
- udp_recvmsg, /* recvmsg */
- NULL, /* bind */
- udp_queue_rcv_skb, /* backlog_rcv */
- udp_v4_hash, /* hash */
- udp_v4_unhash, /* unhash */
- udp_v4_get_port, /* good_socknum */
- "UDP", /* name */
+ name: "UDP",
+ close: udp_close,
+ connect: udp_connect,
+ disconnect: udp_disconnect,
+ ioctl: udp_ioctl,
+ setsockopt: ip_setsockopt,
+ getsockopt: ip_getsockopt,
+ sendmsg: udp_sendmsg,
+ recvmsg: udp_recvmsg,
+ backlog_rcv: udp_queue_rcv_skb,
+ hash: udp_v4_hash,
+ unhash: udp_v4_unhash,
+ get_port: udp_v4_get_port,
 };
diff -urN linux-2.3.99-pre6-5/net/ipv6/af_inet6.c linux-bird.net/net/ipv6/af_inet6.c
--- linux-2.3.99-pre6-5/net/ipv6/af_inet6.c Sun Feb 27 21:45:10 2000
+++ linux-bird.net/net/ipv6/af_inet6.c Fri Apr 21 23:18:54 2000
@@ -445,45 +445,43 @@
 }
 
 struct proto_ops inet6_stream_ops = {
- PF_INET6,
+ family: PF_INET6,
 
- inet6_release,
- inet6_bind,
- inet_stream_connect, /* ok */
- sock_no_socketpair, /* a do nothing */
- inet_accept, /* ok */
- inet6_getname,
- tcp_poll, /* ok */
- inet6_ioctl, /* must change */
- inet_listen, /* ok */
- inet_shutdown, /* ok */
- inet_setsockopt, /* ok */
- inet_getsockopt, /* ok */
- sock_no_fcntl, /* ok */
- inet_sendmsg, /* ok */
- inet_recvmsg, /* ok */
- sock_no_mmap
+ release: inet6_release,
+ bind: inet6_bind,
+ connect: inet_stream_connect, /* ok */
+ socketpair: sock_no_socketpair, /* a do nothing */
+ accept: inet_accept, /* ok */
+ getname: inet6_getname,
+ poll: tcp_poll, /* ok */
+ ioctl: inet6_ioctl, /* must change */
+ listen: inet_listen, /* ok */
+ shutdown: inet_shutdown, /* ok */
+ setsockopt: inet_setsockopt, /* ok */
+ getsockopt: inet_getsockopt, /* ok */
+ sendmsg: inet_sendmsg, /* ok */
+ recvmsg: inet_recvmsg, /* ok */
+ mmap: sock_no_mmap,
 };
 
 struct proto_ops inet6_dgram_ops = {
- PF_INET6,
+ family: PF_INET6,
 
- inet6_release,
- inet6_bind,
- inet_dgram_connect, /* ok */
- sock_no_socketpair, /* a do nothing */
- sock_no_accept, /* a do nothing */
- inet6_getname,
- datagram_poll, /* ok */
- inet6_ioctl, /* must change */
- sock_no_listen, /* ok */
- inet_shutdown, /* ok */
- inet_setsockopt, /* ok */
- inet_getsockopt, /* ok */
- sock_no_fcntl, /* ok */
- inet_sendmsg, /* ok */
- inet_recvmsg, /* ok */
- sock_no_mmap,
+ release: inet6_release,
+ bind: inet6_bind,
+ connect: inet_dgram_connect, /* ok */
+ socketpair: sock_no_socketpair, /* a do nothing */
+ accept: sock_no_accept, /* a do nothing */
+ getname: inet6_getname,
+ poll: datagram_poll, /* ok */
+ ioctl: inet6_ioctl, /* must change */
+ listen: sock_no_listen, /* ok */
+ shutdown: inet_shutdown, /* ok */
+ setsockopt: inet_setsockopt, /* ok */
+ getsockopt: inet_getsockopt, /* ok */
+ sendmsg: inet_sendmsg, /* ok */
+ recvmsg: inet_recvmsg, /* ok */
+ mmap: sock_no_mmap,
 };
 
 struct net_proto_family inet6_family_ops = {
diff -urN linux-2.3.99-pre6-5/net/ipv6/raw.c linux-bird.net/net/ipv6/raw.c
--- linux-2.3.99-pre6-5/net/ipv6/raw.c Sun Feb 27 21:45:10 2000
+++ linux-bird.net/net/ipv6/raw.c Fri Apr 21 22:05:16 2000
@@ -786,22 +786,18 @@
 }
 
 struct proto rawv6_prot = {
- rawv6_close, /* close */
- udpv6_connect, /* connect */
- udp_disconnect, /* disconnect */
- NULL, /* accept */
- NULL, /* ioctl */
- rawv6_init_sk, /* init */
- inet6_destroy_sock, /* destroy */
- NULL, /* shutdown */
- rawv6_setsockopt, /* setsockopt */
- rawv6_getsockopt, /* getsockopt */
- rawv6_sendmsg, /* sendmsg */
- rawv6_recvmsg, /* recvmsg */
- rawv6_bind, /* bind */
- rawv6_rcv_skb, /* backlog_rcv */
- raw_v6_hash, /* hash */
- raw_v6_unhash, /* unhash */
- NULL, /* get_port */
- "RAW", /* name */
+ name: "RAW",
+ close: rawv6_close,
+ connect: udpv6_connect,
+ disconnect: udp_disconnect,
+ init: rawv6_init_sk,
+ destroy: inet6_destroy_sock,
+ setsockopt: rawv6_setsockopt,
+ getsockopt: rawv6_getsockopt,
+ sendmsg: rawv6_sendmsg,
+ recvmsg: rawv6_recvmsg,
+ bind: rawv6_bind,
+ backlog_rcv: rawv6_rcv_skb,
+ hash: raw_v6_hash,
+ unhash: raw_v6_unhash,
 };
diff -urN linux-2.3.99-pre6-5/net/ipv6/tcp_ipv6.c linux-bird.net/net/ipv6/tcp_ipv6.c
--- linux-2.3.99-pre6-5/net/ipv6/tcp_ipv6.c Tue Apr 11 18:09:53 2000
+++ linux-bird.net/net/ipv6/tcp_ipv6.c Fri Apr 21 22:05:16 2000
@@ -2080,24 +2080,23 @@
 }
 
 struct proto tcpv6_prot = {
- tcp_close, /* close */
- tcp_v6_connect, /* connect */
- tcp_disconnect, /* disconnect */
- tcp_accept, /* accept */
- tcp_ioctl, /* ioctl */
- tcp_v6_init_sock, /* init */
- tcp_v6_destroy_sock, /* destroy */
- tcp_shutdown, /* shutdown */
- tcp_setsockopt, /* setsockopt */
- tcp_getsockopt, /* getsockopt */
- tcp_sendmsg, /* sendmsg */
- tcp_recvmsg, /* recvmsg */
- NULL, /* bind */
- tcp_v6_do_rcv, /* backlog_rcv */
- tcp_v6_hash, /* hash */
- tcp_unhash, /* unhash */
- tcp_v6_get_port, /* get_port */
- "TCPv6", /* name */
+ name: "TCPv6",
+ close: tcp_close,
+ connect: tcp_v6_connect,
+ disconnect: tcp_disconnect,
+ accept: tcp_accept,
+ ioctl: tcp_ioctl,
+ init: tcp_v6_init_sock,
+ destroy: tcp_v6_destroy_sock,
+ shutdown: tcp_shutdown,
+ setsockopt: tcp_setsockopt,
+ getsockopt: tcp_getsockopt,
+ sendmsg: tcp_sendmsg,
+ recvmsg: tcp_recvmsg,
+ backlog_rcv: tcp_v6_do_rcv,
+ hash: tcp_v6_hash,
+ unhash: tcp_unhash,
+ get_port: tcp_v6_get_port,
 };
 
 static struct inet6_protocol tcpv6_protocol =
diff -urN linux-2.3.99-pre6-5/net/ipv6/udp.c linux-bird.net/net/ipv6/udp.c
--- linux-2.3.99-pre6-5/net/ipv6/udp.c Sun Feb 27 21:45:10 2000
+++ linux-bird.net/net/ipv6/udp.c Fri Apr 21 22:05:16 2000
@@ -972,24 +972,20 @@
 }
 
 struct proto udpv6_prot = {
- udpv6_close, /* close */
- udpv6_connect, /* connect */
- udp_disconnect, /* disconnect */
- NULL, /* accept */
- udp_ioctl, /* ioctl */
- NULL, /* init */
- inet6_destroy_sock, /* destroy */
- NULL, /* shutdown */
- ipv6_setsockopt, /* setsockopt */
- ipv6_getsockopt, /* getsockopt */
- udpv6_sendmsg, /* sendmsg */
- udpv6_recvmsg, /* recvmsg */
- NULL, /* bind */
- udpv6_queue_rcv_skb, /* backlog_rcv */
- udp_v6_hash, /* hash */
- udp_v6_unhash, /* unhash */
- udp_v6_get_port, /* get_port */
- "UDP", /* name */
+ name: "UDP",
+ close: udpv6_close,
+ connect: udpv6_connect,
+ disconnect: udp_disconnect,
+ ioctl: udp_ioctl,
+ destroy: inet6_destroy_sock,
+ setsockopt: ipv6_setsockopt,
+ getsockopt: ipv6_getsockopt,
+ sendmsg: udpv6_sendmsg,
+ recvmsg: udpv6_recvmsg,
+ backlog_rcv: udpv6_queue_rcv_skb,
+ hash: udp_v6_hash,
+ unhash: udp_v6_unhash,
+ get_port: udp_v6_get_port,
 };
 
 void __init udpv6_init(void)
diff -urN linux-2.3.99-pre6-5/net/ipx/af_ipx.c linux-bird.net/net/ipx/af_ipx.c
--- linux-2.3.99-pre6-5/net/ipx/af_ipx.c Thu Mar 2 13:13:17 2000
+++ linux-bird.net/net/ipx/af_ipx.c Fri Apr 21 23:19:07 2000
@@ -2330,23 +2330,23 @@
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(ipx_dgram_ops) = {
- PF_IPX,
- ipx_release,
- ipx_bind,
- ipx_connect,
- sock_no_socketpair,
- sock_no_accept,
- ipx_getname,
- datagram_poll,
- ipx_ioctl,
- sock_no_listen,
- sock_no_shutdown, /* FIXME: We have to really support shutdown. */
- ipx_setsockopt,
- ipx_getsockopt,
- sock_no_fcntl,
- ipx_sendmsg,
- ipx_recvmsg,
- sock_no_mmap
+ family: PF_IPX,
+
+ release: ipx_release,
+ bind: ipx_bind,
+ connect: ipx_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: ipx_getname,
+ poll: datagram_poll,
+ ioctl: ipx_ioctl,
+ listen: sock_no_listen,
+ shutdown: sock_no_shutdown, /* FIXME: We have to really support shutdown. */
+ setsockopt: ipx_setsockopt,
+ getsockopt: ipx_getsockopt,
+ sendmsg: ipx_sendmsg,
+ recvmsg: ipx_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>
diff -urN linux-2.3.99-pre6-5/net/ipx/af_spx.c linux-bird.net/net/ipx/af_spx.c
--- linux-2.3.99-pre6-5/net/ipx/af_spx.c Tue Apr 11 18:09:53 2000
+++ linux-bird.net/net/ipx/af_spx.c Fri Apr 21 23:19:04 2000
@@ -884,23 +884,23 @@
 }
 
 static struct proto_ops SOCKOPS_WRAPPED(spx_ops) = {
- PF_IPX,
- spx_release,
- spx_bind,
- spx_connect,
- sock_no_socketpair,
- spx_accept,
- spx_getname,
- spx_datagram_poll,
- spx_ioctl,
- spx_listen,
- sock_no_shutdown,
- spx_setsockopt,
- spx_getsockopt,
- sock_no_fcntl,
- spx_sendmsg,
- spx_recvmsg,
- sock_no_mmap
+ family: PF_IPX,
+
+ release: spx_release,
+ bind: spx_bind,
+ connect: spx_connect,
+ socketpair: sock_no_socketpair,
+ accept: spx_accept,
+ getname: spx_getname,
+ poll: spx_datagram_poll,
+ ioctl: spx_ioctl,
+ listen: spx_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: spx_setsockopt,
+ getsockopt: spx_getsockopt,
+ sendmsg: spx_sendmsg,
+ recvmsg: spx_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>
diff -urN linux-2.3.99-pre6-5/net/irda/af_irda.c linux-bird.net/net/irda/af_irda.c
--- linux-2.3.99-pre6-5/net/irda/af_irda.c Fri Apr 21 21:59:09 2000
+++ linux-bird.net/net/irda/af_irda.c Fri Apr 21 23:18:23 2000
@@ -2015,88 +2015,84 @@
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = {
- PF_IRDA,
+ family: PF_IRDA,
         
- irda_release,
- irda_bind,
- irda_connect,
- sock_no_socketpair,
- irda_accept,
- irda_getname,
- irda_poll,
- irda_ioctl,
- irda_listen,
- irda_shutdown,
- irda_setsockopt,
- irda_getsockopt,
- sock_no_fcntl,
- irda_sendmsg,
- irda_recvmsg_stream,
- sock_no_mmap
+ release: irda_release,
+ bind: irda_bind,
+ connect: irda_connect,
+ socketpair: sock_no_socketpair,
+ accept: irda_accept,
+ getname: irda_getname,
+ poll: irda_poll,
+ ioctl: irda_ioctl,
+ listen: irda_listen,
+ shutdown: irda_shutdown,
+ setsockopt: irda_setsockopt,
+ getsockopt: irda_getsockopt,
+ sendmsg: irda_sendmsg,
+ recvmsg: irda_recvmsg_stream,
+ mmap: sock_no_mmap,
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = {
- PF_IRDA,
+ family: PF_IRDA,
         
- irda_release,
- irda_bind,
- irda_connect,
- sock_no_socketpair,
- irda_accept,
- irda_getname,
- datagram_poll,
- irda_ioctl,
- irda_listen,
- irda_shutdown,
- irda_setsockopt,
- irda_getsockopt,
- sock_no_fcntl,
- irda_sendmsg,
- irda_recvmsg_dgram,
- sock_no_mmap,
+ release: irda_release,
+ bind: irda_bind,
+ connect: irda_connect,
+ socketpair: sock_no_socketpair,
+ accept: irda_accept,
+ getname: irda_getname,
+ poll: datagram_poll,
+ ioctl: irda_ioctl,
+ listen: irda_listen,
+ shutdown: irda_shutdown,
+ setsockopt: irda_setsockopt,
+ getsockopt: irda_getsockopt,
+ sendmsg: irda_sendmsg,
+ recvmsg: irda_recvmsg_dgram,
+ mmap: sock_no_mmap,
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = {
- PF_IRDA,
+ family: PF_IRDA,
        
- irda_release,
- irda_bind,
- irda_connect,
- sock_no_socketpair,
- irda_accept,
- irda_getname,
- datagram_poll,
- irda_ioctl,
- irda_listen,
- irda_shutdown,
- irda_setsockopt,
- irda_getsockopt,
- sock_no_fcntl,
- irda_sendmsg_dgram,
- irda_recvmsg_dgram,
- sock_no_mmap,
+ release: irda_release,
+ bind: irda_bind,
+ connect: irda_connect,
+ socketpair: sock_no_socketpair,
+ accept: irda_accept,
+ getname: irda_getname,
+ poll: datagram_poll,
+ ioctl: irda_ioctl,
+ listen: irda_listen,
+ shutdown: irda_shutdown,
+ setsockopt: irda_setsockopt,
+ getsockopt: irda_getsockopt,
+ sendmsg: irda_sendmsg_dgram,
+ recvmsg: irda_recvmsg_dgram,
+ mmap: sock_no_mmap,
 };
 
 #ifdef CONFIG_IRDA_ULTRA
 static struct proto_ops SOCKOPS_WRAPPED(irda_ultra_ops) = {
- PF_IRDA,
+ family: PF_IRDA,
        
- irda_release,
- irda_bind,
- sock_no_connect,
- sock_no_socketpair,
- sock_no_accept,
- irda_getname,
- datagram_poll,
- irda_ioctl,
- sock_no_listen,
- irda_shutdown,
- irda_setsockopt,
- irda_getsockopt,
- sock_no_fcntl,
- irda_sendmsg_ultra,
- irda_recvmsg_dgram,
- sock_no_mmap,
+ release: irda_release,
+ bind: irda_bind,
+ connect: sock_no_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: irda_getname,
+ poll: datagram_poll,
+ ioctl: irda_ioctl,
+ listen: sock_no_listen,
+ shutdown: irda_shutdown,
+ setsockopt: irda_setsockopt,
+ getsockopt: irda_getsockopt,
+ sendmsg: irda_sendmsg_ultra,
+ recvmsg: irda_recvmsg_dgram,
+ mmap: sock_no_mmap,
 };
 #endif /* CONFIG_IRDA_ULTRA */
 
diff -urN linux-2.3.99-pre6-5/net/netlink/af_netlink.c linux-bird.net/net/netlink/af_netlink.c
--- linux-2.3.99-pre6-5/net/netlink/af_netlink.c Tue Apr 11 18:09:53 2000
+++ linux-bird.net/net/netlink/af_netlink.c Fri Apr 21 23:18:33 2000
@@ -941,24 +941,23 @@
 #endif
 
 struct proto_ops netlink_ops = {
- PF_NETLINK,
+ family: PF_NETLINK,
 
- netlink_release,
- netlink_bind,
- netlink_connect,
- sock_no_socketpair,
- sock_no_accept,
- netlink_getname,
- datagram_poll,
- sock_no_ioctl,
- sock_no_listen,
- sock_no_shutdown,
- sock_no_setsockopt,
- sock_no_getsockopt,
- sock_no_fcntl,
- netlink_sendmsg,
- netlink_recvmsg,
- sock_no_mmap
+ release: netlink_release,
+ bind: netlink_bind,
+ connect: netlink_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: netlink_getname,
+ poll: datagram_poll,
+ ioctl: sock_no_ioctl,
+ listen: sock_no_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: sock_no_setsockopt,
+ getsockopt: sock_no_getsockopt,
+ sendmsg: netlink_sendmsg,
+ recvmsg: netlink_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 struct net_proto_family netlink_family_ops = {
diff -urN linux-2.3.99-pre6-5/net/netrom/af_netrom.c linux-bird.net/net/netrom/af_netrom.c
--- linux-2.3.99-pre6-5/net/netrom/af_netrom.c Fri Jan 28 22:36:23 2000
+++ linux-bird.net/net/netrom/af_netrom.c Fri Apr 21 23:19:01 2000
@@ -1240,24 +1240,23 @@
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(nr_proto_ops) = {
- PF_NETROM,
+ family: PF_NETROM,
 
- nr_release,
- nr_bind,
- nr_connect,
- sock_no_socketpair,
- nr_accept,
- nr_getname,
- datagram_poll,
- nr_ioctl,
- nr_listen,
- sock_no_shutdown,
- nr_setsockopt,
- nr_getsockopt,
- sock_no_fcntl,
- nr_sendmsg,
- nr_recvmsg,
- sock_no_mmap
+ release: nr_release,
+ bind: nr_bind,
+ connect: nr_connect,
+ socketpair: sock_no_socketpair,
+ accept: nr_accept,
+ getname: nr_getname,
+ poll: datagram_poll,
+ ioctl: nr_ioctl,
+ listen: nr_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: nr_setsockopt,
+ getsockopt: nr_getsockopt,
+ sendmsg: nr_sendmsg,
+ recvmsg: nr_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>
diff -urN linux-2.3.99-pre6-5/net/netsyms.c linux-bird.net/net/netsyms.c
--- linux-2.3.99-pre6-5/net/netsyms.c Tue Apr 11 18:09:53 2000
+++ linux-bird.net/net/netsyms.c Fri Apr 21 23:28:26 2000
@@ -134,7 +134,6 @@
 EXPORT_SYMBOL(sock_no_shutdown);
 EXPORT_SYMBOL(sock_no_getsockopt);
 EXPORT_SYMBOL(sock_no_setsockopt);
-EXPORT_SYMBOL(sock_no_fcntl);
 EXPORT_SYMBOL(sock_no_sendmsg);
 EXPORT_SYMBOL(sock_no_recvmsg);
 EXPORT_SYMBOL(sock_no_mmap);
diff -urN linux-2.3.99-pre6-5/net/packet/af_packet.c linux-bird.net/net/packet/af_packet.c
--- linux-2.3.99-pre6-5/net/packet/af_packet.c Tue Mar 14 01:18:11 2000
+++ linux-bird.net/net/packet/af_packet.c Fri Apr 21 23:18:30 2000
@@ -1723,46 +1723,44 @@
 
 #ifdef CONFIG_SOCK_PACKET
 struct proto_ops packet_ops_spkt = {
- PF_PACKET,
+ family: PF_PACKET,
 
- packet_release,
- packet_bind_spkt,
- sock_no_connect,
- sock_no_socketpair,
- sock_no_accept,
- packet_getname_spkt,
- datagram_poll,
- packet_ioctl,
- sock_no_listen,
- sock_no_shutdown,
- sock_no_setsockopt,
- sock_no_getsockopt,
- sock_no_fcntl,
- packet_sendmsg_spkt,
- packet_recvmsg,
- sock_no_mmap
+ release: packet_release,
+ bind: packet_bind_spkt,
+ connect: sock_no_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: packet_getname_spkt,
+ poll: datagram_poll,
+ ioctl: packet_ioctl,
+ listen: sock_no_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: sock_no_setsockopt,
+ getsockopt: sock_no_getsockopt,
+ sendmsg: packet_sendmsg_spkt,
+ recvmsg: packet_recvmsg,
+ mmap: sock_no_mmap,
 };
 #endif
 
 struct proto_ops packet_ops = {
- PF_PACKET,
+ family: PF_PACKET,
 
- packet_release,
- packet_bind,
- sock_no_connect,
- sock_no_socketpair,
- sock_no_accept,
- packet_getname,
- packet_poll,
- packet_ioctl,
- sock_no_listen,
- sock_no_shutdown,
- packet_setsockopt,
- packet_getsockopt,
- sock_no_fcntl,
- packet_sendmsg,
- packet_recvmsg,
- packet_mmap,
+ release: packet_release,
+ bind: packet_bind,
+ connect: sock_no_connect,
+ socketpair: sock_no_socketpair,
+ accept: sock_no_accept,
+ getname: packet_getname,
+ poll: packet_poll,
+ ioctl: packet_ioctl,
+ listen: sock_no_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: packet_setsockopt,
+ getsockopt: packet_getsockopt,
+ sendmsg: packet_sendmsg,
+ recvmsg: packet_recvmsg,
+ mmap: packet_mmap,
 };
 
 static struct net_proto_family packet_family_ops = {
diff -urN linux-2.3.99-pre6-5/net/rose/af_rose.c linux-bird.net/net/rose/af_rose.c
--- linux-2.3.99-pre6-5/net/rose/af_rose.c Fri Jan 28 22:36:23 2000
+++ linux-bird.net/net/rose/af_rose.c Fri Apr 21 23:18:36 2000
@@ -1410,24 +1410,23 @@
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(rose_proto_ops) = {
- PF_ROSE,
+ family: PF_ROSE,
 
- rose_release,
- rose_bind,
- rose_connect,
- sock_no_socketpair,
- rose_accept,
- rose_getname,
- datagram_poll,
- rose_ioctl,
- rose_listen,
- sock_no_shutdown,
- rose_setsockopt,
- rose_getsockopt,
- sock_no_fcntl,
- rose_sendmsg,
- rose_recvmsg,
- sock_no_mmap
+ release: rose_release,
+ bind: rose_bind,
+ connect: rose_connect,
+ socketpair: sock_no_socketpair,
+ accept: rose_accept,
+ getname: rose_getname,
+ poll: datagram_poll,
+ ioctl: rose_ioctl,
+ listen: rose_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: rose_setsockopt,
+ getsockopt: rose_getsockopt,
+ sendmsg: rose_sendmsg,
+ recvmsg: rose_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>
diff -urN linux-2.3.99-pre6-5/net/socket.c linux-bird.net/net/socket.c
--- linux-2.3.99-pre6-5/net/socket.c Fri Apr 21 21:59:10 2000
+++ linux-bird.net/net/socket.c Fri Apr 21 23:28:19 2000
@@ -1392,7 +1392,7 @@
 
         sock = socki_lookup (filp->f_dentry->d_inode);
         if (sock && sock->ops)
- return sock->ops->fcntl(sock, cmd, arg);
+ return sock_no_fcntl(sock, cmd, arg);
         return(-EINVAL);
 }
 
diff -urN linux-2.3.99-pre6-5/net/unix/af_unix.c linux-bird.net/net/unix/af_unix.c
--- linux-2.3.99-pre6-5/net/unix/af_unix.c Fri Apr 21 21:59:10 2000
+++ linux-bird.net/net/unix/af_unix.c Fri Apr 21 23:17:39 2000
@@ -1722,45 +1722,43 @@
 #endif
 
 struct proto_ops unix_stream_ops = {
- PF_UNIX,
+ family: PF_UNIX,
         
- unix_release,
- unix_bind,
- unix_stream_connect,
- unix_socketpair,
- unix_accept,
- unix_getname,
- unix_poll,
- unix_ioctl,
- unix_listen,
- unix_shutdown,
- sock_no_setsockopt,
- sock_no_getsockopt,
- sock_no_fcntl,
- unix_stream_sendmsg,
- unix_stream_recvmsg,
- sock_no_mmap
+ release: unix_release,
+ bind: unix_bind,
+ connect: unix_stream_connect,
+ socketpair: unix_socketpair,
+ accept: unix_accept,
+ getname: unix_getname,
+ poll: unix_poll,
+ ioctl: unix_ioctl,
+ listen: unix_listen,
+ shutdown: unix_shutdown,
+ setsockopt: sock_no_setsockopt,
+ getsockopt: sock_no_getsockopt,
+ sendmsg: unix_stream_sendmsg,
+ recvmsg: unix_stream_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 struct proto_ops unix_dgram_ops = {
- PF_UNIX,
+ family: PF_UNIX,
         
- unix_release,
- unix_bind,
- unix_dgram_connect,
- unix_socketpair,
- sock_no_accept,
- unix_getname,
- datagram_poll,
- unix_ioctl,
- sock_no_listen,
- unix_shutdown,
- sock_no_setsockopt,
- sock_no_getsockopt,
- sock_no_fcntl,
- unix_dgram_sendmsg,
- unix_dgram_recvmsg,
- sock_no_mmap
+ release: unix_release,
+ bind: unix_bind,
+ connect: unix_dgram_connect,
+ socketpair: unix_socketpair,
+ accept: sock_no_accept,
+ getname: unix_getname,
+ poll: datagram_poll,
+ ioctl: unix_ioctl,
+ listen: sock_no_listen,
+ shutdown: unix_shutdown,
+ setsockopt: sock_no_setsockopt,
+ getsockopt: sock_no_getsockopt,
+ sendmsg: unix_dgram_sendmsg,
+ recvmsg: unix_dgram_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 struct net_proto_family unix_family_ops = {
diff -urN linux-2.3.99-pre6-5/net/x25/af_x25.c linux-bird.net/net/x25/af_x25.c
--- linux-2.3.99-pre6-5/net/x25/af_x25.c Fri Apr 21 21:59:10 2000
+++ linux-bird.net/net/x25/af_x25.c Fri Apr 21 23:18:38 2000
@@ -1243,24 +1243,23 @@
 };
 
 static struct proto_ops SOCKOPS_WRAPPED(x25_proto_ops) = {
- AF_X25,
+ family: AF_X25,
 
- x25_release,
- x25_bind,
- x25_connect,
- sock_no_socketpair,
- x25_accept,
- x25_getname,
- datagram_poll,
- x25_ioctl,
- x25_listen,
- sock_no_shutdown,
- x25_setsockopt,
- x25_getsockopt,
- sock_no_fcntl,
- x25_sendmsg,
- x25_recvmsg,
- sock_no_mmap
+ release: x25_release,
+ bind: x25_bind,
+ connect: x25_connect,
+ socketpair: sock_no_socketpair,
+ accept: x25_accept,
+ getname: x25_getname,
+ poll: datagram_poll,
+ ioctl: x25_ioctl,
+ listen: x25_listen,
+ shutdown: sock_no_shutdown,
+ setsockopt: x25_setsockopt,
+ getsockopt: x25_getsockopt,
+ sendmsg: x25_sendmsg,
+ recvmsg: x25_recvmsg,
+ mmap: sock_no_mmap,
 };
 
 #include <linux/smp_lock.h>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:20 EST