@@ -350,7 +350,8 @@ static void return_buffer(struct io_uring_zcrx_rq *rq_ring,
350350 io_uring_smp_store_release (rq_ring -> ktail , ++ rq_ring -> rq_tail );
351351}
352352
353- static void process_recvzc_error (struct zc_conn * conn , int ret )
353+ static void process_recvzc_error (struct io_uring * ring ,
354+ struct zc_conn * conn , int ret )
354355{
355356 if (ret == - ENOSPC ) {
356357 size_t left = 0 ;
@@ -379,7 +380,7 @@ static void process_recvzc_error(struct zc_conn *conn, int ret)
379380 stop = true;
380381}
381382
382- static void process_recvzc (struct io_uring __attribute__(( unused )) * ring ,
383+ static void process_recvzc (struct io_uring * ring ,
383384 struct io_uring_cqe * cqe )
384385{
385386 struct zc_conn * conn = get_connection (cqe -> user_data );
@@ -390,7 +391,7 @@ static void process_recvzc(struct io_uring __attribute__((unused)) *ring,
390391 conn -> stat_nr_cqes ++ ;
391392
392393 if (!(cqe -> flags & IORING_CQE_F_MORE )) {
393- process_recvzc_error (conn , cqe -> res );
394+ process_recvzc_error (ring , conn , cqe -> res );
394395 return ;
395396 }
396397 if (cqe -> res < 0 )
@@ -409,8 +410,11 @@ static void server_loop(struct io_uring *ring)
409410{
410411 struct io_uring_cqe * cqe ;
411412 unsigned int head , count = 0 ;
413+ int ret ;
412414
413- io_uring_submit_and_wait (ring , 1 );
415+ ret = io_uring_submit_and_wait (ring , 1 );
416+ if (ret < 0 && ret != - ETIME )
417+ t_error (1 , ret , "io_uring_submit_and_wait failed\n" );
414418
415419 io_uring_for_each_cqe (ring , head , cqe ) {
416420 switch (cqe -> user_data & REQ_TYPE_MASK ) {
0 commit comments