@@ -441,17 +441,10 @@ static int ublk_queue_init(struct ublk_queue *q, unsigned extra_flags)
441441 unsigned long off ;
442442
443443 q -> tgt_ops = dev -> tgt .ops ;
444- q -> state = 0 ;
444+ q -> flags = 0 ;
445445 q -> q_depth = depth ;
446-
447- if (dev -> dev_info .flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG )) {
448- q -> state |= UBLKSRV_NO_BUF ;
449- if (dev -> dev_info .flags & UBLK_F_SUPPORT_ZERO_COPY )
450- q -> state |= UBLKSRV_ZC ;
451- if (dev -> dev_info .flags & UBLK_F_AUTO_BUF_REG )
452- q -> state |= UBLKSRV_AUTO_BUF_REG ;
453- }
454- q -> state |= extra_flags ;
446+ q -> flags = dev -> dev_info .flags ;
447+ q -> flags |= extra_flags ;
455448
456449 cmd_buf_size = ublk_queue_cmd_buf_sz (q );
457450 off = UBLKSRV_CMD_BUF_OFFSET + q -> q_id * ublk_queue_max_cmd_buf_sz ();
@@ -469,7 +462,7 @@ static int ublk_queue_init(struct ublk_queue *q, unsigned extra_flags)
469462 q -> ios [i ].flags = UBLKSRV_NEED_FETCH_RQ | UBLKSRV_IO_FREE ;
470463 q -> ios [i ].tag = i ;
471464
472- if (q -> state & UBLKSRV_NO_BUF )
465+ if (ublk_queue_no_buf ( q ) )
473466 continue ;
474467
475468 if (posix_memalign ((void * * )& q -> ios [i ].buf_addr ,
@@ -583,7 +576,7 @@ static void ublk_set_auto_buf_reg(const struct ublk_queue *q,
583576 else
584577 buf .index = q -> ios [tag ].buf_index ;
585578
586- if (q -> state & UBLKSRV_AUTO_BUF_REG_FALLBACK )
579+ if (ublk_queue_auto_zc_fallback ( q ) )
587580 buf .flags = UBLK_AUTO_BUF_REG_FALLBACK ;
588581
589582 sqe -> addr = ublk_auto_buf_reg_to_sqe_addr (& buf );
@@ -639,12 +632,12 @@ int ublk_queue_io_cmd(struct ublk_thread *t, struct ublk_io *io)
639632 sqe [0 ]-> rw_flags = 0 ;
640633 cmd -> tag = io -> tag ;
641634 cmd -> q_id = q -> q_id ;
642- if (!( q -> state & UBLKSRV_NO_BUF ))
635+ if (!ublk_queue_no_buf ( q ))
643636 cmd -> addr = (__u64 ) (uintptr_t ) io -> buf_addr ;
644637 else
645638 cmd -> addr = 0 ;
646639
647- if (q -> state & UBLKSRV_AUTO_BUF_REG )
640+ if (ublk_queue_use_auto_zc ( q ) )
648641 ublk_set_auto_buf_reg (q , sqe [0 ], io -> tag );
649642
650643 user_data = build_user_data (io -> tag , _IOC_NR (cmd_op ), 0 , q -> q_id , 0 );
@@ -739,7 +732,7 @@ static void ublk_handle_cqe(struct ublk_thread *t,
739732
740733 if (cqe -> res < 0 && cqe -> res != - ENODEV )
741734 ublk_err ("%s: res %d userdata %llx queue state %x\n" , __func__ ,
742- cqe -> res , cqe -> user_data , q -> state );
735+ cqe -> res , cqe -> user_data , q -> flags );
743736
744737 ublk_dbg (UBLK_DBG_IO_CMD , "%s: res %d (qid %d tag %u cmd_op %u target %d/%d) stopping %d\n" ,
745738 __func__ , cqe -> res , q -> q_id , tag , cmd_op ,
@@ -911,7 +904,7 @@ static int ublk_start_daemon(const struct dev_ctx *ctx, struct ublk_dev *dev)
911904{
912905 const struct ublksrv_ctrl_dev_info * dinfo = & dev -> dev_info ;
913906 struct ublk_thread_info * tinfo ;
914- unsigned extra_flags = 0 ;
907+ unsigned long long extra_flags = 0 ;
915908 cpu_set_t * affinity_buf ;
916909 void * thread_ret ;
917910 sem_t ready ;
0 commit comments