Lines Matching refs:zc
216 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_prep_async() local
220 if (!zc->addr || req_has_async_data(req)) in io_send_prep_async()
225 ret = move_addr_to_kernel(zc->addr, zc->addr_len, &io->addr); in io_send_prep_async()
960 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc_cleanup() local
969 if (zc->notif) { in io_send_zc_cleanup()
970 io_notif_flush(zc->notif); in io_send_zc_cleanup()
971 zc->notif = NULL; in io_send_zc_cleanup()
980 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc_prep() local
990 notif = zc->notif = io_alloc_notif(ctx); in io_send_zc_prep()
998 zc->flags = READ_ONCE(sqe->ioprio); in io_send_zc_prep()
999 if (unlikely(zc->flags & ~IO_ZC_FLAGS_COMMON)) { in io_send_zc_prep()
1000 if (zc->flags & ~IO_ZC_FLAGS_VALID) in io_send_zc_prep()
1002 if (zc->flags & IORING_SEND_ZC_REPORT_USAGE) { in io_send_zc_prep()
1008 if (zc->flags & IORING_RECVSEND_FIXED_BUF) { in io_send_zc_prep()
1021 zc->addr = u64_to_user_ptr(READ_ONCE(sqe->addr2)); in io_send_zc_prep()
1022 zc->addr_len = READ_ONCE(sqe->addr_len); in io_send_zc_prep()
1026 if (unlikely(zc->flags & IORING_RECVSEND_FIXED_BUF)) in io_send_zc_prep()
1030 zc->buf = u64_to_user_ptr(READ_ONCE(sqe->addr)); in io_send_zc_prep()
1031 zc->len = READ_ONCE(sqe->len); in io_send_zc_prep()
1032 zc->msg_flags = READ_ONCE(sqe->msg_flags) | MSG_NOSIGNAL; in io_send_zc_prep()
1033 if (zc->msg_flags & MSG_DONTWAIT) in io_send_zc_prep()
1036 zc->done_io = 0; in io_send_zc_prep()
1040 zc->msg_flags |= MSG_CMSG_COMPAT; in io_send_zc_prep()
1106 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc() local
1123 if (zc->addr) { in io_send_zc()
1129 ret = move_addr_to_kernel(zc->addr, zc->addr_len, &__address); in io_send_zc()
1134 msg.msg_namelen = zc->addr_len; in io_send_zc()
1138 (zc->flags & IORING_RECVSEND_POLL_FIRST)) in io_send_zc()
1141 if (zc->flags & IORING_RECVSEND_FIXED_BUF) { in io_send_zc()
1143 (u64)(uintptr_t)zc->buf, zc->len); in io_send_zc()
1148 io_notif_set_extended(zc->notif); in io_send_zc()
1149 ret = import_ubuf(ITER_SOURCE, zc->buf, zc->len, &msg.msg_iter); in io_send_zc()
1152 ret = io_notif_account_mem(zc->notif, zc->len); in io_send_zc()
1158 msg_flags = zc->msg_flags | MSG_ZEROCOPY; in io_send_zc()
1166 msg.msg_ubuf = &io_notif_to_data(zc->notif)->uarg; in io_send_zc()
1174 zc->len -= ret; in io_send_zc()
1175 zc->buf += ret; in io_send_zc()
1176 zc->done_io += ret; in io_send_zc()
1186 ret += zc->done_io; in io_send_zc()
1187 else if (zc->done_io) in io_send_zc()
1188 ret = zc->done_io; in io_send_zc()
1195 io_notif_flush(zc->notif); in io_send_zc()