Lines Matching refs:zc

190 	struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg);  in io_send_prep_async()  local
194 if (!zc->addr || req_has_async_data(req)) in io_send_prep_async()
199 ret = move_addr_to_kernel(zc->addr, zc->addr_len, &io->addr); in io_send_prep_async()
911 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc_cleanup() local
920 if (zc->notif) { in io_send_zc_cleanup()
921 io_notif_flush(zc->notif); in io_send_zc_cleanup()
922 zc->notif = NULL; in io_send_zc_cleanup()
928 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc_prep() local
938 zc->flags = READ_ONCE(sqe->ioprio); in io_send_zc_prep()
939 if (zc->flags & ~(IORING_RECVSEND_POLL_FIRST | in io_send_zc_prep()
942 notif = zc->notif = io_alloc_notif(ctx); in io_send_zc_prep()
949 if (zc->flags & IORING_RECVSEND_FIXED_BUF) { in io_send_zc_prep()
962 zc->addr = u64_to_user_ptr(READ_ONCE(sqe->addr2)); in io_send_zc_prep()
963 zc->addr_len = READ_ONCE(sqe->addr_len); in io_send_zc_prep()
967 if (unlikely(zc->flags & IORING_RECVSEND_FIXED_BUF)) in io_send_zc_prep()
971 zc->buf = u64_to_user_ptr(READ_ONCE(sqe->addr)); in io_send_zc_prep()
972 zc->len = READ_ONCE(sqe->len); in io_send_zc_prep()
973 zc->msg_flags = READ_ONCE(sqe->msg_flags) | MSG_NOSIGNAL; in io_send_zc_prep()
974 if (zc->msg_flags & MSG_DONTWAIT) in io_send_zc_prep()
977 zc->done_io = 0; in io_send_zc_prep()
981 zc->msg_flags |= MSG_CMSG_COMPAT; in io_send_zc_prep()
1047 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc() local
1065 if (zc->addr) { in io_send_zc()
1071 ret = move_addr_to_kernel(zc->addr, zc->addr_len, &__address); in io_send_zc()
1076 msg.msg_namelen = zc->addr_len; in io_send_zc()
1080 (zc->flags & IORING_RECVSEND_POLL_FIRST)) in io_send_zc()
1083 if (zc->flags & IORING_RECVSEND_FIXED_BUF) { in io_send_zc()
1085 (u64)(uintptr_t)zc->buf, zc->len); in io_send_zc()
1090 ret = import_single_range(WRITE, zc->buf, zc->len, &iov, in io_send_zc()
1094 ret = io_notif_account_mem(zc->notif, zc->len); in io_send_zc()
1100 msg_flags = zc->msg_flags | MSG_ZEROCOPY; in io_send_zc()
1107 msg.msg_ubuf = &io_notif_to_data(zc->notif)->uarg; in io_send_zc()
1115 zc->len -= ret; in io_send_zc()
1116 zc->buf += ret; in io_send_zc()
1117 zc->done_io += ret; in io_send_zc()
1127 ret += zc->done_io; in io_send_zc()
1128 else if (zc->done_io) in io_send_zc()
1129 ret = zc->done_io; in io_send_zc()
1136 io_notif_flush(zc->notif); in io_send_zc()