diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-05-14 16:02:22 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-05-31 15:30:03 -0600 |
commit | 87e5e6dab6c2a21fab2620f37786276d202e2ce0 (patch) | |
tree | 617496186deb33cc30c77506130bc21973c77710 /net | |
parent | 61939b12dc24d0ac958020f261046c35a16e0c48 (diff) | |
download | linux-87e5e6dab6c2a21fab2620f37786276d202e2ce0.tar.gz linux-87e5e6dab6c2a21fab2620f37786276d202e2ce0.tar.bz2 linux-87e5e6dab6c2a21fab2620f37786276d202e2ce0.zip |
uio: make import_iovec()/compat_import_iovec() return bytes on success
Currently these functions return < 0 on error, and 0 for success.
Change that so that we return < 0 on error, but number of bytes
for success.
Some callers already treat the return value that way, others need a
slight tweak.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'net')
-rw-r--r-- | net/compat.c | 3 | ||||
-rw-r--r-- | net/socket.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/net/compat.c b/net/compat.c index 3f9ce609397f..0f7ded26059e 100644 --- a/net/compat.c +++ b/net/compat.c @@ -80,9 +80,10 @@ int get_compat_msghdr(struct msghdr *kmsg, kmsg->msg_iocb = NULL; - return compat_import_iovec(save_addr ? READ : WRITE, + err = compat_import_iovec(save_addr ? READ : WRITE, compat_ptr(msg.msg_iov), msg.msg_iovlen, UIO_FASTIOV, iov, &kmsg->msg_iter); + return err < 0 ? err : 0; } /* Bleech... */ diff --git a/net/socket.c b/net/socket.c index 72372dc5dd70..bffec466b4f1 100644 --- a/net/socket.c +++ b/net/socket.c @@ -2208,9 +2208,10 @@ static int copy_msghdr_from_user(struct msghdr *kmsg, kmsg->msg_iocb = NULL; - return import_iovec(save_addr ? READ : WRITE, + err = import_iovec(save_addr ? READ : WRITE, msg.msg_iov, msg.msg_iovlen, UIO_FASTIOV, iov, &kmsg->msg_iter); + return err < 0 ? err : 0; } static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg, |