Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
4027d6e3
Commit
4027d6e3
authored
Oct 10, 2002
by
Benjamin LaHaise
Browse files
Options
Browse Files
Download
Plain Diff
Merge redhat.com:/md0/linux-2.5 into redhat.com:/md0/net-2.5
parents
5b3e7241
592dbf58
Changes
27
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
227 additions
and
137 deletions
+227
-137
include/linux/net.h
include/linux/net.h
+7
-2
include/net/inet_common.h
include/net/inet_common.h
+4
-2
include/net/sock.h
include/net/sock.h
+29
-5
include/net/tcp.h
include/net/tcp.h
+3
-2
include/net/udp.h
include/net/udp.h
+2
-1
net/atm/common.c
net/atm/common.c
+4
-4
net/atm/common.h
net/atm/common.h
+4
-4
net/ax25/af_ax25.c
net/ax25/af_ax25.c
+4
-3
net/bluetooth/af_bluetooth.c
net/bluetooth/af_bluetooth.c
+2
-1
net/core/sock.c
net/core/sock.c
+4
-4
net/decnet/af_decnet.c
net/decnet/af_decnet.c
+4
-4
net/econet/af_econet.c
net/econet/af_econet.c
+5
-4
net/ipv4/af_inet.c
net/ipv4/af_inet.c
+9
-8
net/ipv4/raw.c
net/ipv4/raw.c
+4
-3
net/ipv4/tcp.c
net/ipv4/tcp.c
+3
-2
net/ipv4/udp.c
net/ipv4/udp.c
+4
-3
net/ipx/af_ipx.c
net/ipx/af_ipx.c
+4
-4
net/irda/af_irda.c
net/irda/af_irda.c
+5
-4
net/llc/af_llc.c
net/llc/af_llc.c
+5
-4
net/netlink/af_netlink.c
net/netlink/af_netlink.c
+4
-2
net/netrom/af_netrom.c
net/netrom/af_netrom.c
+5
-3
net/packet/af_packet.c
net/packet/af_packet.c
+6
-4
net/rose/af_rose.c
net/rose/af_rose.c
+5
-4
net/socket.c
net/socket.c
+84
-49
net/unix/af_unix.c
net/unix/af_unix.c
+8
-4
net/wanrouter/af_wanpipe.c
net/wanrouter/af_wanpipe.c
+5
-4
net/x25/af_x25.c
net/x25/af_x25.c
+4
-3
No files found.
include/linux/net.h
View file @
4027d6e3
...
...
@@ -81,6 +81,7 @@ struct socket
struct
scm_cookie
;
struct
vm_area_struct
;
struct
page
;
struct
kiocb
;
struct
proto_ops
{
int
family
;
...
...
@@ -104,8 +105,12 @@ struct proto_ops {
char
*
optval
,
int
optlen
);
int
(
*
getsockopt
)
(
struct
socket
*
sock
,
int
level
,
int
optname
,
char
*
optval
,
int
*
optlen
);
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
(
*
sendmsg
)
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
struct
scm_cookie
*
scm
);
int
(
*
recvmsg
)
(
struct
kiocb
*
iocb
,
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
);
ssize_t
(
*
sendpage
)
(
struct
socket
*
sock
,
struct
page
*
page
,
int
offset
,
size_t
size
,
int
flags
);
};
...
...
include/net/inet_common.h
View file @
4027d6e3
...
...
@@ -20,10 +20,12 @@ extern int inet_dgram_connect(struct socket *sock,
int
addr_len
,
int
flags
);
extern
int
inet_accept
(
struct
socket
*
sock
,
struct
socket
*
newsock
,
int
flags
);
extern
int
inet_recvmsg
(
struct
socket
*
sock
,
extern
int
inet_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
ubuf
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
);
extern
int
inet_sendmsg
(
struct
socket
*
sock
,
extern
int
inet_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
struct
scm_cookie
*
scm
);
extern
int
inet_shutdown
(
struct
socket
*
sock
,
int
how
);
...
...
include/net/sock.h
View file @
4027d6e3
...
...
@@ -51,6 +51,7 @@
#include <asm/atomic.h>
#include <net/dst.h>
#include <net/scm.h>
/* for sock_iocb */
/*
* This structure really needs to be cleaned up.
...
...
@@ -242,9 +243,10 @@ struct proto {
int
(
*
getsockopt
)(
struct
sock
*
sk
,
int
level
,
int
optname
,
char
*
optval
,
int
*
option
);
int
(
*
sendmsg
)(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
);
int
(
*
recvmsg
)(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
(
*
sendmsg
)(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
);
int
(
*
recvmsg
)(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
,
int
noblock
,
int
flags
,
int
*
addr_len
);
int
(
*
bind
)(
struct
sock
*
sk
,
...
...
@@ -292,7 +294,29 @@ static __inline__ void sock_prot_dec_use(struct proto *prot)
#define SOCK_BINDADDR_LOCK 4
#define SOCK_BINDPORT_LOCK 8
/* sock_iocb: used to kick off async processing of socket ios */
struct
sock_iocb
{
struct
list_head
list
;
int
flags
;
int
size
;
struct
socket
*
sock
;
struct
sock
*
sk
;
struct
msghdr
*
msg
,
async_msg
;
struct
iovec
async_iov
;
struct
scm_cookie
*
scm
,
async_scm
;
};
static
inline
struct
sock_iocb
*
kiocb_to_siocb
(
struct
kiocb
*
iocb
)
{
BUG_ON
(
sizeof
(
struct
sock_iocb
)
>
KIOCB_PRIVATE_SIZE
);
return
(
struct
sock_iocb
*
)
iocb
->
private
;
}
static
inline
struct
kiocb
*
siocb_to_kiocb
(
struct
sock_iocb
*
si
)
{
return
container_of
((
void
*
)
si
,
struct
kiocb
,
private
);
}
/* Used by processes to "lock" a socket state, so that
* interrupts and bottom half handlers won't change it
...
...
@@ -390,10 +414,10 @@ extern int sock_no_getsockopt(struct socket *, int , int,
char
*
,
int
*
);
extern
int
sock_no_setsockopt
(
struct
socket
*
,
int
,
int
,
char
*
,
int
);
extern
int
sock_no_sendmsg
(
struct
socket
*
,
extern
int
sock_no_sendmsg
(
struct
kiocb
*
,
struct
socket
*
,
struct
msghdr
*
,
int
,
struct
scm_cookie
*
);
extern
int
sock_no_recvmsg
(
struct
socket
*
,
extern
int
sock_no_recvmsg
(
struct
kiocb
*
,
struct
socket
*
,
struct
msghdr
*
,
int
,
int
,
struct
scm_cookie
*
);
extern
int
sock_no_mmap
(
struct
file
*
file
,
...
...
include/net/tcp.h
View file @
4027d6e3
...
...
@@ -648,7 +648,8 @@ extern int tcp_v4_remember_stamp(struct sock *sk);
extern
int
tcp_v4_tw_remember_stamp
(
struct
tcp_tw_bucket
*
tw
);
extern
int
tcp_sendmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
size
);
extern
int
tcp_sendmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
size
);
extern
ssize_t
tcp_sendpage
(
struct
socket
*
sock
,
struct
page
*
page
,
int
offset
,
size_t
size
,
int
flags
);
extern
int
tcp_ioctl
(
struct
sock
*
sk
,
...
...
@@ -739,7 +740,7 @@ extern int tcp_setsockopt(struct sock *sk, int level,
int
optname
,
char
*
optval
,
int
optlen
);
extern
void
tcp_set_keepalive
(
struct
sock
*
sk
,
int
val
);
extern
int
tcp_recvmsg
(
struct
sock
*
sk
,
extern
int
tcp_recvmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
,
int
nonblock
,
int
flags
,
int
*
addr_len
);
...
...
include/net/udp.h
View file @
4027d6e3
...
...
@@ -64,7 +64,8 @@ extern void udp_err(struct sk_buff *, u32);
extern
int
udp_connect
(
struct
sock
*
sk
,
struct
sockaddr
*
usin
,
int
addr_len
);
extern
int
udp_sendmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
);
extern
int
udp_sendmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
);
extern
int
udp_rcv
(
struct
sk_buff
*
skb
);
extern
int
udp_ioctl
(
struct
sock
*
sk
,
int
cmd
,
unsigned
long
arg
);
...
...
net/atm/common.c
View file @
4027d6e3
...
...
@@ -336,8 +336,8 @@ int atm_connect(struct socket *sock,int itf,short vpi,int vci)
}
int
atm_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
int
flags
,
struct
scm_cookie
*
scm
)
int
atm_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
int
flags
,
struct
scm_cookie
*
scm
)
{
DECLARE_WAITQUEUE
(
wait
,
current
);
struct
atm_vcc
*
vcc
;
...
...
@@ -417,8 +417,8 @@ int atm_recvmsg(struct socket *sock,struct msghdr *m,int total_len,
}
int
atm_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
struct
scm_cookie
*
scm
)
int
atm_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
struct
scm_cookie
*
scm
)
{
DECLARE_WAITQUEUE
(
wait
,
current
);
struct
atm_vcc
*
vcc
;
...
...
net/atm/common.h
View file @
4027d6e3
...
...
@@ -13,10 +13,10 @@
int
atm_create
(
struct
socket
*
sock
,
int
protocol
,
int
family
);
int
atm_release
(
struct
socket
*
sock
);
int
atm_connect
(
struct
socket
*
sock
,
int
itf
,
short
vpi
,
int
vci
);
int
atm_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
int
flags
,
struct
scm_cookie
*
scm
);
int
atm_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
struct
scm_cookie
*
scm
);
int
atm_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
int
flags
,
struct
scm_cookie
*
scm
);
int
atm_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
total_len
,
struct
scm_cookie
*
scm
);
unsigned
int
atm_poll
(
struct
file
*
file
,
struct
socket
*
sock
,
poll_table
*
wait
);
int
atm_ioctl
(
struct
socket
*
sock
,
unsigned
int
cmd
,
unsigned
long
arg
);
int
atm_setsockopt
(
struct
socket
*
sock
,
int
level
,
int
optname
,
char
*
optval
,
...
...
net/ax25/af_ax25.c
View file @
4027d6e3
...
...
@@ -1410,7 +1410,8 @@ static int ax25_getname(struct socket *sock, struct sockaddr *uaddr,
return
err
;
}
static
int
ax25_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
static
int
ax25_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sockaddr_ax25
*
usax
=
(
struct
sockaddr_ax25
*
)
msg
->
msg_name
;
...
...
@@ -1588,8 +1589,8 @@ static int ax25_sendmsg(struct socket *sock, struct msghdr *msg, int len,
return
err
;
}
static
int
ax25_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
ax25_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
sk_buff
*
skb
;
...
...
net/bluetooth/af_bluetooth.c
View file @
4027d6e3
...
...
@@ -207,7 +207,8 @@ struct sock *bluez_accept_dequeue(struct sock *parent, struct socket *newsock)
return
NULL
;
}
int
bluez_sock_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
int
bluez_sock_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
{
int
noblock
=
flags
&
MSG_DONTWAIT
;
struct
sock
*
sk
=
sock
->
sk
;
...
...
net/core/sock.c
View file @
4027d6e3
...
...
@@ -1047,14 +1047,14 @@ int sock_no_getsockopt(struct socket *sock, int level, int optname,
return
-
EOPNOTSUPP
;
}
int
sock_no_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
flags
,
struct
scm_cookie
*
scm
)
int
sock_no_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
flags
,
struct
scm_cookie
*
scm
)
{
return
-
EOPNOTSUPP
;
}
int
sock_no_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
int
sock_no_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
m
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
{
return
-
EOPNOTSUPP
;
}
...
...
net/decnet/af_decnet.c
View file @
4027d6e3
...
...
@@ -1733,8 +1733,8 @@ static int dn_data_ready(struct sock *sk, struct sk_buff_head *q, int flags, int
}
static
int
dn_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
dn_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
dn_scp
*
scp
=
DN_SK
(
sk
);
...
...
@@ -1901,8 +1901,8 @@ static inline int dn_queue_too_long(struct dn_scp *scp, struct sk_buff_head *que
return
0
;
}
static
int
dn_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
struct
scm_cookie
*
scm
)
static
int
dn_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
dn_scp
*
scp
=
DN_SK
(
sk
);
...
...
net/econet/af_econet.c
View file @
4027d6e3
...
...
@@ -97,8 +97,9 @@ struct ec_cb
* If necessary we block.
*/
static
int
econet_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
econet_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
sk_buff
*
skb
;
...
...
@@ -230,8 +231,8 @@ static void ec_tx_done(struct sk_buff *skb, int result)
* and hence whether to use real Econet or the UDP emulation.
*/
static
int
econet_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
econet_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
sockaddr_ec
*
saddr
=
(
struct
sockaddr_ec
*
)
msg
->
msg_name
;
...
...
net/ipv4/af_inet.c
View file @
4027d6e3
...
...
@@ -753,22 +753,23 @@ int inet_getname(struct socket *sock, struct sockaddr *uaddr,
}
int
inet_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
int
inet_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
int
addr_len
=
0
;
int
err
=
sk
->
prot
->
recvmsg
(
sk
,
msg
,
size
,
flags
&
MSG_DONTWAIT
,
flags
&
~
MSG_DONTWAIT
,
&
addr_len
);
int
err
;
err
=
sk
->
prot
->
recvmsg
(
iocb
,
sk
,
msg
,
size
,
flags
&
MSG_DONTWAIT
,
flags
&
~
MSG_DONTWAIT
,
&
addr_len
);
if
(
err
>=
0
)
msg
->
msg_namelen
=
addr_len
;
return
err
;
}
int
inet_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
struct
scm_cookie
*
scm
)
int
inet_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
@@ -776,7 +777,7 @@ int inet_sendmsg(struct socket *sock, struct msghdr *msg, int size,
if
(
!
inet_sk
(
sk
)
->
num
&&
inet_autobind
(
sk
))
return
-
EAGAIN
;
return
sk
->
prot
->
sendmsg
(
sk
,
msg
,
size
);
return
sk
->
prot
->
sendmsg
(
iocb
,
sk
,
msg
,
size
);
}
int
inet_shutdown
(
struct
socket
*
sock
,
int
how
)
...
...
net/ipv4/raw.c
View file @
4027d6e3
...
...
@@ -295,7 +295,8 @@ static int raw_getrawfrag(const void *p, char *to, unsigned int offset,
return
0
;
}
static
int
raw_sendmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
)
static
int
raw_sendmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
)
{
struct
inet_opt
*
inet
=
inet_sk
(
sk
);
struct
ipcm_cookie
ipc
;
...
...
@@ -476,8 +477,8 @@ out: return ret;
* we return it, otherwise we block.
*/
int
raw_recvmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
,
int
noblock
,
int
flags
,
int
*
addr_len
)
int
raw_recvmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
,
int
noblock
,
int
flags
,
int
*
addr_len
)
{
struct
inet_opt
*
inet
=
inet_sk
(
sk
);
int
copied
=
0
;
...
...
net/ipv4/tcp.c
View file @
4027d6e3
...
...
@@ -1013,7 +1013,8 @@ static inline int select_size(struct sock *sk, struct tcp_opt *tp)
return
tmp
;
}
int
tcp_sendmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
size
)
int
tcp_sendmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
size
)
{
struct
iovec
*
iov
;
struct
tcp_opt
*
tp
=
tcp_sk
(
sk
);
...
...
@@ -1475,7 +1476,7 @@ int tcp_read_sock(struct sock *sk, read_descriptor_t *desc,
* Probably, code can be easily improved even more.
*/
int
tcp_recvmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
tcp_recvmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
,
int
nonblock
,
int
flags
,
int
*
addr_len
)
{
struct
tcp_opt
*
tp
=
tcp_sk
(
sk
);
...
...
net/ipv4/udp.c
View file @
4027d6e3
...
...
@@ -423,7 +423,8 @@ static int udp_getfrag_nosum(const void *p, char * to, unsigned int offset, unsi
fraglen
);
}
int
udp_sendmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
)
int
udp_sendmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
)
{
struct
inet_opt
*
inet
=
inet_sk
(
sk
);
int
ulen
=
len
+
sizeof
(
struct
udphdr
);
...
...
@@ -635,8 +636,8 @@ static __inline__ int udp_checksum_complete(struct sk_buff *skb)
* return it, otherwise we block.
*/
int
udp_recvmsg
(
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
,
int
noblock
,
int
flags
,
int
*
addr_len
)
int
udp_recvmsg
(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
int
len
,
int
noblock
,
int
flags
,
int
*
addr_len
)
{
struct
inet_opt
*
inet
=
inet_sk
(
sk
);
struct
sockaddr_in
*
sin
=
(
struct
sockaddr_in
*
)
msg
->
msg_name
;
...
...
net/ipx/af_ipx.c
View file @
4027d6e3
...
...
@@ -2009,8 +2009,8 @@ drop: kfree_skb(skb);
out:
return
ret
;
}
static
int
ipx_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
ipx_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
ipx_opt
*
ipxs
=
ipx_sk
(
sk
);
...
...
@@ -2069,8 +2069,8 @@ out: return ret;
}
static
int
ipx_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
ipx_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
ipx_opt
*
ipxs
=
ipx_sk
(
sk
);
...
...
net/irda/af_irda.c
View file @
4027d6e3
...
...
@@ -1259,8 +1259,8 @@ static int irda_release(struct socket *sock)
* SEQPACK services. This is possible since it forces the client to
* fragment the message if necessary
*/
static
int
irda_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
irda_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
irda_sock
*
self
;
...
...
@@ -1331,8 +1331,9 @@ static int irda_sendmsg(struct socket *sock, struct msghdr *msg, int len,
* Try to receive message and copy it to user. The frame is discarded
* after being read, regardless of how much the user actually read
*/
static
int
irda_recvmsg_dgram
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
irda_recvmsg_dgram
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
irda_sock
*
self
=
irda_sk
(
sk
);
...
...
net/llc/af_llc.c
View file @
4027d6e3
...
...
@@ -677,8 +677,9 @@ static int llc_ui_accept(struct socket *sock, struct socket *newsock, int flags)
* Copy received data to the socket user.
* Returns non-negative upon success, negative otherwise.
*/
static
int
llc_ui_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
llc_ui_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
sockaddr_llc
*
uaddr
=
(
struct
sockaddr_llc
*
)
msg
->
msg_name
;
...
...
@@ -731,8 +732,8 @@ static int llc_ui_recvmsg(struct socket *sock, struct msghdr *msg, int size,
* Transmit data provided by the socket user.
* Returns non-negative upon success, negative otherwise.
*/
static
int
llc_ui_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
llc_ui_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
llc_opt
*
llc
=
llc_sk
(
sk
);
...
...
net/netlink/af_netlink.c
View file @
4027d6e3
...
...
@@ -570,7 +570,8 @@ void netlink_set_err(struct sock *ssk, u32 pid, u32 group, int code)
read_unlock
(
&
nl_table_lock
);
}
static
int
netlink_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
static
int
netlink_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
@@ -639,7 +640,8 @@ static int netlink_sendmsg(struct socket *sock, struct msghdr *msg, int len,
return
err
;
}
static
int
netlink_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
static
int
netlink_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
net/netrom/af_netrom.c
View file @
4027d6e3
...
...
@@ -966,7 +966,8 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
return
1
;
}
static
int
nr_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
nr_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
nr_cb
*
nr
=
nr_sk
(
sk
);
...
...
@@ -1056,8 +1057,9 @@ static int nr_sendmsg(struct socket *sock, struct msghdr *msg, int len, struct s
return
len
;
}
static
int
nr_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
nr_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
sockaddr_ax25
*
sax
=
(
struct
sockaddr_ax25
*
)
msg
->
msg_name
;
...
...
net/packet/af_packet.c
View file @
4027d6e3
...
...
@@ -288,7 +288,8 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct
* protocol layers and you must therefore supply it with a complete frame
*/
static
int
packet_sendmsg_spkt
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
static
int
packet_sendmsg_spkt
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
@@ -665,8 +666,8 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, struct pack
#endif
static
int
packet_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
packet_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
sockaddr_ll
*
saddr
=
(
struct
sockaddr_ll
*
)
msg
->
msg_name
;
...
...
@@ -1020,7 +1021,8 @@ static int packet_create(struct socket *sock, int protocol)
* If necessary we block.
*/
static
int
packet_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
static
int
packet_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
net/rose/af_rose.c
View file @
4027d6e3
...
...
@@ -1025,8 +1025,8 @@ int rose_rx_call_request(struct sk_buff *skb, struct net_device *dev, struct ros
return
1
;
}
static
int
rose_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
rose_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
rose_cb
*
rose
=
rose_sk
(
sk
);
...
...
@@ -1189,8 +1189,9 @@ static int rose_sendmsg(struct socket *sock, struct msghdr *msg, int len,
}
static
int
rose_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
rose_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
rose_cb
*
rose
=
rose_sk
(
sk
);
...
...
net/socket.c
View file @
4027d6e3
...
...
@@ -90,10 +90,10 @@
#include <linux/netfilter.h>
static
int
sock_no_open
(
struct
inode
*
irrelevant
,
struct
file
*
dontcare
);
static
ssize_t
sock_
read
(
struct
file
*
file
,
char
*
buf
,
size_t
size
,
loff_t
*
p
pos
);
static
ssize_t
sock_
write
(
struct
file
*
file
,
const
char
*
buf
,
size_t
size
,
loff_t
*
p
pos
);
static
ssize_t
sock_
aio_read
(
struct
kiocb
*
iocb
,
char
*
buf
,
size_t
size
,
loff_t
pos
);
static
ssize_t
sock_
aio_write
(
struct
kiocb
*
iocb
,
char
*
buf
,
size_t
size
,
loff_t
pos
);
static
int
sock_mmap
(
struct
file
*
file
,
struct
vm_area_struct
*
vma
);
static
int
sock_close
(
struct
inode
*
inode
,
struct
file
*
file
);
...
...
@@ -117,8 +117,8 @@ static ssize_t sock_sendpage(struct file *file, struct page *page,
static
struct
file_operations
socket_file_ops
=
{
.
llseek
=
no_llseek
,
.
read
=
sock
_read
,
.
write
=
sock
_write
,
.
aio_read
=
sock_aio
_read
,
.
aio_write
=
sock_aio
_write
,
.
poll
=
sock_poll
,
.
ioctl
=
sock_ioctl
,
.
mmap
=
sock_mmap
,
...
...
@@ -517,64 +517,100 @@ void sock_release(struct socket *sock)
sock
->
file
=
NULL
;
}
int
sock_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
)
static
int
__sock_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
)
{
struct
sock_iocb
*
si
=
kiocb_to_siocb
(
iocb
);
int
err
;
struct
scm_cookie
scm
;
err
=
scm_send
(
sock
,
msg
,
&
scm
);
si
->
scm
=
&
si
->
async_scm
;
si
->
sock
=
sock
;
si
->
msg
=
msg
;
si
->
size
=
size
;
err
=
scm_send
(
sock
,
msg
,
si
->
scm
);
if
(
err
>=
0
)
{
err
=
sock
->
ops
->
sendmsg
(
sock
,
msg
,
size
,
&
scm
);
scm_destroy
(
&
scm
);
err
=
sock
->
ops
->
sendmsg
(
iocb
,
sock
,
msg
,
size
,
si
->
scm
);
if
(
-
EIOCBQUEUED
!=
err
)
scm_destroy
(
si
->
scm
);
}
return
err
;
}
int
sock_
recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
)
int
sock_
sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
)
{
struct
scm_cookie
scm
;
struct
kiocb
iocb
;
int
ret
;
init_sync_kiocb
(
&
iocb
,
NULL
);
ret
=
__sock_sendmsg
(
&
iocb
,
sock
,
msg
,
size
);
if
(
-
EIOCBQUEUED
==
ret
)
ret
=
wait_on_sync_kiocb
(
&
iocb
);
return
ret
;
}
int
__sock_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
)
{
struct
sock_iocb
*
si
=
kiocb_to_siocb
(
iocb
);
si
->
sock
=
sock
;
si
->
scm
=
&
si
->
async_scm
;
si
->
sock
=
sock
;
si
->
msg
=
msg
;
si
->
size
=
size
;
si
->
flags
=
flags
;
memset
(
&
scm
,
0
,
sizeof
(
scm
));
memset
(
si
->
scm
,
0
,
sizeof
(
*
si
->
scm
));
size
=
sock
->
ops
->
recvmsg
(
sock
,
msg
,
size
,
flags
,
&
scm
);
size
=
sock
->
ops
->
recvmsg
(
iocb
,
sock
,
msg
,
size
,
flags
,
si
->
scm
);
if
(
size
>=
0
)
scm_recv
(
sock
,
msg
,
&
scm
,
flags
);
scm_recv
(
sock
,
msg
,
si
->
scm
,
flags
);
return
size
;
}
int
sock_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
)
{
struct
kiocb
iocb
;
int
ret
;
init_sync_kiocb
(
&
iocb
,
NULL
);
ret
=
__sock_recvmsg
(
&
iocb
,
sock
,
msg
,
size
,
flags
);
if
(
-
EIOCBQUEUED
==
ret
)
ret
=
wait_on_sync_kiocb
(
&
iocb
);
return
ret
;
}
/*
* Read data from a socket. ubuf is a user mode pointer. We make sure the user
* area ubuf...ubuf+size-1 is writable before asking the protocol.
*/
static
ssize_t
sock_
read
(
struct
file
*
file
,
char
*
ubuf
,
size_t
size
,
loff_t
*
p
pos
)
static
ssize_t
sock_
aio_read
(
struct
kiocb
*
iocb
,
char
*
ubuf
,
size_t
size
,
loff_t
pos
)
{
struct
sock_iocb
*
x
=
kiocb_to_siocb
(
iocb
);
struct
socket
*
sock
;
struct
iovec
iov
;
struct
msghdr
msg
;
int
flags
;
if
(
p
pos
!=
&
file
->
f_pos
)
if
(
p
os
!=
0
)
return
-
ESPIPE
;
if
(
size
==
0
)
/* Match SYS5 behaviour */
return
0
;
sock
=
SOCKET_I
(
file
->
f_dentry
->
d_inode
);
sock
=
SOCKET_I
(
iocb
->
ki_filp
->
f_dentry
->
d_inode
);
msg
.
msg_name
=
NULL
;
msg
.
msg_namelen
=
0
;
msg
.
msg_iov
=&
iov
;
msg
.
msg_iovlen
=
1
;
msg
.
msg_control
=
NULL
;
msg
.
msg_controllen
=
0
;
iov
.
iov_base
=
ubuf
;
iov
.
iov_len
=
size
;
flags
=
!
(
file
->
f_flags
&
O_NONBLOCK
)
?
0
:
MSG_DONTWAIT
;
x
->
async_msg
.
msg_name
=
NULL
;
x
->
async_msg
.
msg_namelen
=
0
;
x
->
async_msg
.
msg_iov
=
&
x
->
async_
iov
;
x
->
async_msg
.
msg_iovlen
=
1
;
x
->
async_msg
.
msg_control
=
NULL
;
x
->
async_msg
.
msg_controllen
=
0
;
x
->
async_iov
.
iov_base
=
ubuf
;
x
->
async_iov
.
iov_len
=
size
;
flags
=
!
(
iocb
->
ki_filp
->
f_flags
&
O_NONBLOCK
)
?
0
:
MSG_DONTWAIT
;
return
sock_recvmsg
(
sock
,
&
msg
,
size
,
flags
);
return
__sock_recvmsg
(
iocb
,
sock
,
&
x
->
async_
msg
,
size
,
flags
);
}
...
...
@@ -583,33 +619,32 @@ static ssize_t sock_read(struct file *file, char *ubuf,
* is readable by the user process.
*/
static
ssize_t
sock_
write
(
struct
file
*
file
,
const
char
*
ubuf
,
size_t
size
,
loff_t
*
p
pos
)
static
ssize_t
sock_
aio_write
(
struct
kiocb
*
iocb
,
char
*
ubuf
,
size_t
size
,
loff_t
pos
)
{
struct
sock_iocb
*
x
=
kiocb_to_siocb
(
iocb
);
struct
socket
*
sock
;
struct
msghdr
msg
;
struct
iovec
iov
;
if
(
p
pos
!=
&
file
->
f_pos
)
if
(
p
os
!=
0
)
return
-
ESPIPE
;
if
(
size
==
0
)
/* Match SYS5 behaviour */
return
0
;
sock
=
SOCKET_I
(
file
->
f_dentry
->
d_inode
);
sock
=
SOCKET_I
(
iocb
->
ki_filp
->
f_dentry
->
d_inode
);
msg
.
msg_name
=
NULL
;
msg
.
msg_namelen
=
0
;
msg
.
msg_iov
=&
iov
;
msg
.
msg_iovlen
=
1
;
msg
.
msg_control
=
NULL
;
msg
.
msg_controllen
=
0
;
msg
.
msg_flags
=!
(
file
->
f_flags
&
O_NONBLOCK
)
?
0
:
MSG_DONTWAIT
;
x
->
async_msg
.
msg_name
=
NULL
;
x
->
async_msg
.
msg_namelen
=
0
;
x
->
async_msg
.
msg_iov
=
&
x
->
async_
iov
;
x
->
async_msg
.
msg_iovlen
=
1
;
x
->
async_msg
.
msg_control
=
NULL
;
x
->
async_msg
.
msg_controllen
=
0
;
x
->
async_msg
.
msg_flags
=
!
(
iocb
->
ki_filp
->
f_flags
&
O_NONBLOCK
)
?
0
:
MSG_DONTWAIT
;
if
(
sock
->
type
==
SOCK_SEQPACKET
)
msg
.
msg_flags
|=
MSG_EOR
;
iov
.
iov_base
=
(
void
*
)
ubuf
;
iov
.
iov_len
=
size
;
x
->
async_
msg
.
msg_flags
|=
MSG_EOR
;
x
->
async_iov
.
iov_base
=
(
void
*
)
ubuf
;
x
->
async_iov
.
iov_len
=
size
;
return
sock_sendmsg
(
sock
,
&
msg
,
size
);
return
__sock_sendmsg
(
iocb
,
sock
,
&
x
->
async_
msg
,
size
);
}
ssize_t
sock_sendpage
(
struct
file
*
file
,
struct
page
*
page
,
...
...
net/unix/af_unix.c
View file @
4027d6e3
...
...
@@ -1175,7 +1175,8 @@ static void unix_attach_fds(struct scm_cookie *scm, struct sk_buff *skb)
* Send AF_UNIX data.
*/
static
int
unix_dgram_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
static
int
unix_dgram_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
@@ -1307,7 +1308,8 @@ static int unix_dgram_sendmsg(struct socket *sock, struct msghdr *msg, int len,
}
static
int
unix_stream_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
static
int
unix_stream_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
@@ -1415,7 +1417,8 @@ static void unix_copy_addr(struct msghdr *msg, struct sock *sk)
}
}
static
int
unix_dgram_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
static
int
unix_dgram_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
@@ -1517,7 +1520,8 @@ static long unix_stream_data_wait(unix_socket * sk, long timeo)
static
int
unix_stream_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
static
int
unix_stream_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
net/wanrouter/af_wanpipe.c
View file @
4027d6e3
...
...
@@ -540,8 +540,8 @@ static struct sock *wanpipe_alloc_socket(void)
* a packet is queued into sk->write_queue.
*===========================================================*/
static
int
wanpipe_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
wanpipe_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
wanpipe_opt
*
wp
;
struct
sock
*
sk
=
sock
->
sk
;
...
...
@@ -1647,8 +1647,9 @@ static int wanpipe_create(struct socket *sock, int protocol)
* to the user. If necessary we block.
*===========================================================*/
static
int
wanpipe_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
static
int
wanpipe_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
sk_buff
*
skb
;
...
...
net/x25/af_x25.c
View file @
4027d6e3
...
...
@@ -916,8 +916,8 @@ int x25_rx_call_request(struct sk_buff *skb, struct x25_neigh *nb,
goto
out
;
}
static
int
x25_sendmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
static
int
x25_sendmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
len
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
struct
x25_opt
*
x25
=
x25_sk
(
sk
);
...
...
@@ -1091,7 +1091,8 @@ static int x25_sendmsg(struct socket *sock, struct msghdr *msg, int len,
}
static
int
x25_recvmsg
(
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
static
int
x25_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
int
size
,
int
flags
,
struct
scm_cookie
*
scm
)
{
struct
sock
*
sk
=
sock
->
sk
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment