Lines Matching refs:req

461 	vscan_req_t *req;  in vscan_svc_scan_file()  local
488 if ((req = vscan_svc_reql_insert(vp)) == NULL) { in vscan_svc_scan_file()
501 ++(req->vsr_refcnt); in vscan_svc_scan_file()
503 while ((time_left > 0) && (req->vsr_state != VS_SVC_REQ_COMPLETE)) { in vscan_svc_scan_file()
505 time_left = cv_reltimedwait_sig(&(req->vsr_cv), in vscan_svc_scan_file()
511 vp->v_path, req->vsr_seqnum); in vscan_svc_scan_file()
512 DTRACE_PROBE1(vscan__scan__timeout, vscan_req_t *, req); in vscan_svc_scan_file()
515 ASSERT(req->vsr_magic == VS_REQ_MAGIC); in vscan_svc_scan_file()
518 else if (req->vsr_idx == 0) in vscan_svc_scan_file()
521 access = vscan_svc_nodes[req->vsr_idx].vsn_access; in vscan_svc_scan_file()
523 if ((--req->vsr_refcnt) == 0) in vscan_svc_scan_file()
524 vscan_svc_delete_req(req); in vscan_svc_scan_file()
540 vscan_req_t *req, *next; in vscan_svc_reql_handler() local
562 req = vscan_svc_reql_next; in vscan_svc_reql_handler()
564 while (req != NULL) { in vscan_svc_reql_handler()
565 ASSERT(req->vsr_magic == VS_REQ_MAGIC); in vscan_svc_reql_handler()
566 next = list_next(&vscan_svc_reql, req); in vscan_svc_reql_handler()
569 vscan_svc_scan_complete(req); in vscan_svc_reql_handler()
572 if (vscan_svc_insert_req(req) == -1) in vscan_svc_reql_handler()
578 (void *)req, TQ_SLEEP); in vscan_svc_reql_handler()
581 req->vsr_state = VS_SVC_REQ_QUEUED; in vscan_svc_reql_handler()
583 req = next; in vscan_svc_reql_handler()
586 vscan_svc_reql_next = req; in vscan_svc_reql_handler()
605 vscan_req_t *req; in vscan_svc_taskq_callback() local
609 req = (vscan_req_t *)data; in vscan_svc_taskq_callback()
610 ASSERT(req->vsr_magic == VS_REQ_MAGIC); in vscan_svc_taskq_callback()
611 vscan_svc_do_scan(req); in vscan_svc_taskq_callback()
612 if (req->vsr_state != VS_SVC_REQ_SCANNING) in vscan_svc_taskq_callback()
613 vscan_svc_scan_complete(req); in vscan_svc_taskq_callback()
630 vscan_svc_do_scan(vscan_req_t *req) in vscan_svc_do_scan() argument
638 idx = req->vsr_idx; in vscan_svc_do_scan()
641 req->vsr_state = VS_SVC_REQ_IN_PROGRESS; in vscan_svc_do_scan()
651 req->vsr_vp->v_path); in vscan_svc_do_scan()
672 if (req->vsr_state == VS_SVC_REQ_IN_PROGRESS) in vscan_svc_do_scan()
673 req->vsr_state = VS_SVC_REQ_SCANNING; in vscan_svc_do_scan()
690 vscan_req_t *req; in vscan_svc_populate_req() local
696 req = node->vsn_req; in vscan_svc_populate_req()
700 scan_req->vsr_seqnum = req->vsr_seqnum; in vscan_svc_populate_req()
701 (void) strncpy(scan_req->vsr_path, req->vsr_vp->v_path, MAXPATHLEN); in vscan_svc_populate_req()
717 vscan_svc_scan_complete(vscan_req_t *req) in vscan_svc_scan_complete() argument
720 ASSERT(req != NULL); in vscan_svc_scan_complete()
722 req->vsr_state = VS_SVC_REQ_COMPLETE; in vscan_svc_scan_complete()
724 if ((--req->vsr_refcnt) == 0) in vscan_svc_scan_complete()
725 vscan_svc_delete_req(req); in vscan_svc_scan_complete()
727 cv_broadcast(&(req->vsr_cv)); in vscan_svc_scan_complete()
735 vscan_svc_delete_req(vscan_req_t *req) in vscan_svc_delete_req() argument
740 ASSERT(req != NULL); in vscan_svc_delete_req()
741 ASSERT(req->vsr_refcnt == 0); in vscan_svc_delete_req()
742 ASSERT(req->vsr_state == VS_SVC_REQ_COMPLETE); in vscan_svc_delete_req()
744 if ((idx = req->vsr_idx) != 0) in vscan_svc_delete_req()
747 vscan_svc_reql_remove(req); in vscan_svc_delete_req()
764 vscan_req_t *req; in vscan_svc_scan_result() local
771 if ((req = node->vsn_req) == NULL) { in vscan_svc_scan_result()
776 ASSERT(req->vsr_magic == VS_REQ_MAGIC); in vscan_svc_scan_result()
778 if (scan_rsp->vsr_seqnum != req->vsr_seqnum) { in vscan_svc_scan_result()
807 vscan_req_t *req; in vscan_svc_scan_abort() local
812 if ((req = vscan_svc_nodes[idx].vsn_req) == NULL) in vscan_svc_scan_abort()
815 ASSERT(req->vsr_magic == VS_REQ_MAGIC); in vscan_svc_scan_abort()
817 if (req->vsr_state == VS_SVC_REQ_SCANNING) { in vscan_svc_scan_abort()
818 DTRACE_PROBE1(vscan__abort, vscan_req_t *, req); in vscan_svc_scan_abort()
820 vscan_svc_scan_complete(req); in vscan_svc_scan_abort()
1234 vscan_svc_insert_req(vscan_req_t *req) in vscan_svc_insert_req() argument
1246 req->vsr_idx = idx; in vscan_svc_insert_req()
1250 node->vsn_req = req; in vscan_svc_insert_req()
1286 vscan_req_t *req; in vscan_svc_reql_find() local
1289 req = list_head(&vscan_svc_reql); in vscan_svc_reql_find()
1291 while (req != NULL) { in vscan_svc_reql_find()
1292 ASSERT(req->vsr_magic == VS_REQ_MAGIC); in vscan_svc_reql_find()
1293 if ((req->vsr_vp == vp) && in vscan_svc_reql_find()
1294 (req->vsr_state != VS_SVC_REQ_COMPLETE)) in vscan_svc_reql_find()
1297 req = list_next(&vscan_svc_reql, req); in vscan_svc_reql_find()
1300 return (req); in vscan_svc_reql_find()
1310 vscan_req_t *req; in vscan_svc_reql_insert() local
1315 if ((req = vscan_svc_reql_find(vp)) != NULL) in vscan_svc_reql_insert()
1316 return (req); in vscan_svc_reql_insert()
1325 req = kmem_zalloc(sizeof (vscan_req_t), KM_SLEEP); in vscan_svc_reql_insert()
1327 req->vsr_magic = VS_REQ_MAGIC; in vscan_svc_reql_insert()
1330 req->vsr_seqnum = ++vscan_svc_seqnum; in vscan_svc_reql_insert()
1331 req->vsr_vp = vp; in vscan_svc_reql_insert()
1332 req->vsr_refcnt = 1; /* decremented in vscan_svc_scan_complete */ in vscan_svc_reql_insert()
1333 req->vsr_state = VS_SVC_REQ_INIT; in vscan_svc_reql_insert()
1334 cv_init(&(req->vsr_cv), NULL, CV_DEFAULT, NULL); in vscan_svc_reql_insert()
1336 list_insert_tail(&vscan_svc_reql, req); in vscan_svc_reql_insert()
1338 vscan_svc_reql_next = req; in vscan_svc_reql_insert()
1345 return (req); in vscan_svc_reql_insert()
1353 vscan_svc_reql_remove(vscan_req_t *req) in vscan_svc_reql_remove() argument
1356 ASSERT(req->vsr_magic == VS_REQ_MAGIC); in vscan_svc_reql_remove()
1358 if (vscan_svc_reql_next == req) in vscan_svc_reql_remove()
1359 vscan_svc_reql_next = list_next(&vscan_svc_reql, req); in vscan_svc_reql_remove()
1361 list_remove(&vscan_svc_reql, req); in vscan_svc_reql_remove()
1362 cv_destroy(&(req->vsr_cv)); in vscan_svc_reql_remove()
1363 VN_RELE(req->vsr_vp); in vscan_svc_reql_remove()
1365 kmem_free(req, sizeof (vscan_req_t)); in vscan_svc_reql_remove()