Lines Matching refs:zc

206 	struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg);  in io_send_prep_async()  local
210 if (!zc->addr || req_has_async_data(req)) in io_send_prep_async()
215 ret = move_addr_to_kernel(zc->addr, zc->addr_len, &io->addr); in io_send_prep_async()
935 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc_cleanup() local
944 if (zc->notif) { in io_send_zc_cleanup()
945 io_notif_flush(zc->notif); in io_send_zc_cleanup()
946 zc->notif = NULL; in io_send_zc_cleanup()
955 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc_prep() local
965 notif = zc->notif = io_alloc_notif(ctx); in io_send_zc_prep()
973 zc->flags = READ_ONCE(sqe->ioprio); in io_send_zc_prep()
974 if (unlikely(zc->flags & ~IO_ZC_FLAGS_COMMON)) { in io_send_zc_prep()
975 if (zc->flags & ~IO_ZC_FLAGS_VALID) in io_send_zc_prep()
977 if (zc->flags & IORING_SEND_ZC_REPORT_USAGE) { in io_send_zc_prep()
983 if (zc->flags & IORING_RECVSEND_FIXED_BUF) { in io_send_zc_prep()
996 zc->addr = u64_to_user_ptr(READ_ONCE(sqe->addr2)); in io_send_zc_prep()
997 zc->addr_len = READ_ONCE(sqe->addr_len); in io_send_zc_prep()
1001 if (unlikely(zc->flags & IORING_RECVSEND_FIXED_BUF)) in io_send_zc_prep()
1005 zc->buf = u64_to_user_ptr(READ_ONCE(sqe->addr)); in io_send_zc_prep()
1006 zc->len = READ_ONCE(sqe->len); in io_send_zc_prep()
1007 zc->msg_flags = READ_ONCE(sqe->msg_flags) | MSG_NOSIGNAL; in io_send_zc_prep()
1008 if (zc->msg_flags & MSG_DONTWAIT) in io_send_zc_prep()
1011 zc->done_io = 0; in io_send_zc_prep()
1015 zc->msg_flags |= MSG_CMSG_COMPAT; in io_send_zc_prep()
1081 struct io_sr_msg *zc = io_kiocb_to_cmd(req, struct io_sr_msg); in io_send_zc() local
1098 if (zc->addr) { in io_send_zc()
1104 ret = move_addr_to_kernel(zc->addr, zc->addr_len, &__address); in io_send_zc()
1109 msg.msg_namelen = zc->addr_len; in io_send_zc()
1113 (zc->flags & IORING_RECVSEND_POLL_FIRST)) in io_send_zc()
1116 if (zc->flags & IORING_RECVSEND_FIXED_BUF) { in io_send_zc()
1118 (u64)(uintptr_t)zc->buf, zc->len); in io_send_zc()
1123 io_notif_set_extended(zc->notif); in io_send_zc()
1124 ret = import_ubuf(ITER_SOURCE, zc->buf, zc->len, &msg.msg_iter); in io_send_zc()
1127 ret = io_notif_account_mem(zc->notif, zc->len); in io_send_zc()
1133 msg_flags = zc->msg_flags | MSG_ZEROCOPY; in io_send_zc()
1140 msg.msg_ubuf = &io_notif_to_data(zc->notif)->uarg; in io_send_zc()
1148 zc->len -= ret; in io_send_zc()
1149 zc->buf += ret; in io_send_zc()
1150 zc->done_io += ret; in io_send_zc()
1160 ret += zc->done_io; in io_send_zc()
1161 else if (zc->done_io) in io_send_zc()
1162 ret = zc->done_io; in io_send_zc()
1169 io_notif_flush(zc->notif); in io_send_zc()