Lines Matching defs:kmsg

178 			      struct io_async_msghdr *kmsg,
187 kfree(kmsg->free_iov);
191 memcpy(async_msg, kmsg, sizeof(*kmsg));
199 if (iter_is_iovec(&kmsg->msg.msg_iter) && !kmsg->free_iov) {
200 size_t fast_idx = iter_iov(&kmsg->msg.msg_iter) - kmsg->fast_iov;
404 struct io_async_msghdr iomsg, *kmsg;
415 kmsg = req->async_data;
416 kmsg->msg.msg_control_user = sr->msg_control;
421 kmsg = &iomsg;
426 return io_setup_async_msg(req, kmsg, issue_flags);
432 min_ret = iov_iter_count(&kmsg->msg.msg_iter);
434 ret = __sys_sendmsg_sock(sock, &kmsg->msg, flags);
438 return io_setup_async_msg(req, kmsg, issue_flags);
440 kmsg->msg.msg_controllen = 0;
441 kmsg->msg.msg_control = NULL;
444 return io_setup_async_msg(req, kmsg, issue_flags);
451 if (kmsg->free_iov)
452 kfree(kmsg->free_iov);
729 static int io_recvmsg_prep_multishot(struct io_async_msghdr *kmsg,
736 hdr = sizeof(struct io_uring_recvmsg_out) + kmsg->namelen +
737 kmsg->controllen;
741 if (kmsg->controllen) {
742 unsigned long control = ubuf + hdr - kmsg->controllen;
744 kmsg->msg.msg_control_user = (void __user *) control;
745 kmsg->msg.msg_controllen = kmsg->controllen;
750 kmsg->payloadlen = *len = *len - hdr;
760 struct io_async_msghdr *kmsg,
767 if (kmsg->namelen)
768 kmsg->msg.msg_name = &hdr.addr;
769 kmsg->msg.msg_flags = flags & (MSG_CMSG_CLOEXEC|MSG_CMSG_COMPAT);
770 kmsg->msg.msg_namelen = 0;
775 err = sock_recvmsg(sock, &kmsg->msg, flags);
781 .controllen = kmsg->controllen - kmsg->msg.msg_controllen,
782 .flags = kmsg->msg.msg_flags & ~MSG_CMSG_COMPAT
786 if (err > kmsg->payloadlen)
787 err = kmsg->payloadlen;
790 if (kmsg->msg.msg_namelen > kmsg->namelen)
791 copy_len += kmsg->namelen;
793 copy_len += kmsg->msg.msg_namelen;
799 hdr.msg.namelen = kmsg->msg.msg_namelen;
809 return sizeof(struct io_uring_recvmsg_out) + kmsg->namelen +
810 kmsg->controllen + err;
816 struct io_async_msghdr iomsg, *kmsg;
828 kmsg = req->async_data;
833 kmsg = &iomsg;
838 return io_setup_async_msg(req, kmsg, issue_flags);
841 return io_setup_async_msg(req, kmsg, issue_flags);
853 ret = io_recvmsg_prep_multishot(kmsg, sr, &buf, &len);
860 iov_iter_ubuf(&kmsg->msg.msg_iter, ITER_DEST, buf, len);
867 kmsg->msg.msg_get_inq = 1;
868 kmsg->msg.msg_inq = -1;
870 ret = io_recvmsg_multishot(sock, sr, kmsg, flags,
874 if (flags & MSG_WAITALL && !kmsg->msg.msg_controllen)
875 min_ret = iov_iter_count(&kmsg->msg.msg_iter);
877 ret = __sys_recvmsg_sock(sock, &kmsg->msg, sr->umsg,
878 kmsg->uaddr, flags);
883 ret = io_setup_async_msg(req, kmsg, issue_flags);
893 return io_setup_async_msg(req, kmsg, issue_flags);
898 } else if ((flags & MSG_WAITALL) && (kmsg->msg.msg_flags & (MSG_TRUNC | MSG_CTRUNC))) {
909 if (!io_recv_finish(req, &ret, &kmsg->msg, mshot_finished, issue_flags))
914 if (kmsg->free_iov)
915 kfree(kmsg->free_iov);
919 return io_setup_async_msg(req, kmsg, issue_flags);
1262 struct io_async_msghdr iomsg, *kmsg;
1276 kmsg = req->async_data;
1281 kmsg = &iomsg;
1286 return io_setup_async_msg(req, kmsg, issue_flags);
1292 min_ret = iov_iter_count(&kmsg->msg.msg_iter);
1294 kmsg->msg.msg_ubuf = &io_notif_to_data(sr->notif)->uarg;
1295 kmsg->msg.sg_from_iter = io_sg_from_iter_iovec;
1296 ret = __sys_sendmsg_sock(sock, &kmsg->msg, flags);
1300 return io_setup_async_msg(req, kmsg, issue_flags);
1305 return io_setup_async_msg(req, kmsg, issue_flags);
1312 if (kmsg->free_iov) {
1313 kfree(kmsg->free_iov);
1314 kmsg->free_iov = NULL;