Lines Matching refs:zcw

948 zil_commit_waiter_skip(zil_commit_waiter_t *zcw)  in zil_commit_waiter_skip()  argument
950 mutex_enter(&zcw->zcw_lock); in zil_commit_waiter_skip()
951 ASSERT3B(zcw->zcw_done, ==, B_FALSE); in zil_commit_waiter_skip()
952 zcw->zcw_done = B_TRUE; in zil_commit_waiter_skip()
953 cv_broadcast(&zcw->zcw_cv); in zil_commit_waiter_skip()
954 mutex_exit(&zcw->zcw_lock); in zil_commit_waiter_skip()
964 zil_commit_waiter_link_lwb(zil_commit_waiter_t *zcw, lwb_t *lwb) in zil_commit_waiter_link_lwb() argument
972 mutex_enter(&zcw->zcw_lock); in zil_commit_waiter_link_lwb()
973 ASSERT(!list_link_active(&zcw->zcw_node)); in zil_commit_waiter_link_lwb()
974 ASSERT3P(zcw->zcw_lwb, ==, NULL); in zil_commit_waiter_link_lwb()
980 list_insert_tail(&lwb->lwb_waiters, zcw); in zil_commit_waiter_link_lwb()
981 zcw->zcw_lwb = lwb; in zil_commit_waiter_link_lwb()
982 mutex_exit(&zcw->zcw_lock); in zil_commit_waiter_link_lwb()
991 zil_commit_waiter_link_nolwb(zil_commit_waiter_t *zcw, list_t *nolwb) in zil_commit_waiter_link_nolwb() argument
993 mutex_enter(&zcw->zcw_lock); in zil_commit_waiter_link_nolwb()
994 ASSERT(!list_link_active(&zcw->zcw_node)); in zil_commit_waiter_link_nolwb()
995 ASSERT3P(zcw->zcw_lwb, ==, NULL); in zil_commit_waiter_link_nolwb()
996 list_insert_tail(nolwb, zcw); in zil_commit_waiter_link_nolwb()
997 mutex_exit(&zcw->zcw_lock); in zil_commit_waiter_link_nolwb()
1087 zil_commit_waiter_t *zcw; in zil_lwb_flush_vdevs_done() local
1124 while ((zcw = list_head(&lwb->lwb_waiters)) != NULL) { in zil_lwb_flush_vdevs_done()
1125 mutex_enter(&zcw->zcw_lock); in zil_lwb_flush_vdevs_done()
1127 ASSERT(list_link_active(&zcw->zcw_node)); in zil_lwb_flush_vdevs_done()
1128 list_remove(&lwb->lwb_waiters, zcw); in zil_lwb_flush_vdevs_done()
1130 ASSERT3P(zcw->zcw_lwb, ==, lwb); in zil_lwb_flush_vdevs_done()
1131 zcw->zcw_lwb = NULL; in zil_lwb_flush_vdevs_done()
1133 zcw->zcw_zio_error = zio->io_error; in zil_lwb_flush_vdevs_done()
1135 ASSERT3B(zcw->zcw_done, ==, B_FALSE); in zil_lwb_flush_vdevs_done()
1136 zcw->zcw_done = B_TRUE; in zil_lwb_flush_vdevs_done()
1137 cv_broadcast(&zcw->zcw_cv); in zil_lwb_flush_vdevs_done()
1139 mutex_exit(&zcw->zcw_lock); in zil_lwb_flush_vdevs_done()
2217 zil_commit_waiter_t *zcw; in zil_process_commit_list() local
2218 while (zcw = list_head(&nolwb_waiters)) { in zil_process_commit_list()
2219 zil_commit_waiter_skip(zcw); in zil_process_commit_list()
2220 list_remove(&nolwb_waiters, zcw); in zil_process_commit_list()
2294 zil_commit_writer(zilog_t *zilog, zil_commit_waiter_t *zcw) in zil_commit_writer() argument
2301 if (zcw->zcw_lwb != NULL || zcw->zcw_done) { in zil_commit_writer()
2330 zil_commit_waiter_timeout(zilog_t *zilog, zil_commit_waiter_t *zcw) in zil_commit_waiter_timeout() argument
2333 ASSERT(MUTEX_HELD(&zcw->zcw_lock)); in zil_commit_waiter_timeout()
2334 ASSERT3B(zcw->zcw_done, ==, B_FALSE); in zil_commit_waiter_timeout()
2336 lwb_t *lwb = zcw->zcw_lwb; in zil_commit_waiter_timeout()
2359 mutex_exit(&zcw->zcw_lock); in zil_commit_waiter_timeout()
2361 mutex_enter(&zcw->zcw_lock); in zil_commit_waiter_timeout()
2371 if (zcw->zcw_done) in zil_commit_waiter_timeout()
2374 ASSERT3P(lwb, ==, zcw->zcw_lwb); in zil_commit_waiter_timeout()
2450 mutex_exit(&zcw->zcw_lock); in zil_commit_waiter_timeout()
2452 mutex_enter(&zcw->zcw_lock); in zil_commit_waiter_timeout()
2457 ASSERT(MUTEX_HELD(&zcw->zcw_lock)); in zil_commit_waiter_timeout()
2480 zil_commit_waiter(zilog_t *zilog, zil_commit_waiter_t *zcw) in zil_commit_waiter() argument
2486 mutex_enter(&zcw->zcw_lock); in zil_commit_waiter()
2499 while (!zcw->zcw_done) { in zil_commit_waiter()
2500 ASSERT(MUTEX_HELD(&zcw->zcw_lock)); in zil_commit_waiter()
2502 lwb_t *lwb = zcw->zcw_lwb; in zil_commit_waiter()
2534 clock_t timeleft = cv_timedwait_hires(&zcw->zcw_cv, in zil_commit_waiter()
2535 &zcw->zcw_lock, wakeup, USEC2NSEC(1), in zil_commit_waiter()
2538 if (timeleft >= 0 || zcw->zcw_done) in zil_commit_waiter()
2542 zil_commit_waiter_timeout(zilog, zcw); in zil_commit_waiter()
2544 if (!zcw->zcw_done) { in zil_commit_waiter()
2553 ASSERT3P(lwb, ==, zcw->zcw_lwb); in zil_commit_waiter()
2573 cv_wait(&zcw->zcw_cv, &zcw->zcw_lock); in zil_commit_waiter()
2577 mutex_exit(&zcw->zcw_lock); in zil_commit_waiter()
2583 zil_commit_waiter_t *zcw = kmem_cache_alloc(zil_zcw_cache, KM_SLEEP); in zil_alloc_commit_waiter() local
2585 cv_init(&zcw->zcw_cv, NULL, CV_DEFAULT, NULL); in zil_alloc_commit_waiter()
2586 mutex_init(&zcw->zcw_lock, NULL, MUTEX_DEFAULT, NULL); in zil_alloc_commit_waiter()
2587 list_link_init(&zcw->zcw_node); in zil_alloc_commit_waiter()
2588 zcw->zcw_lwb = NULL; in zil_alloc_commit_waiter()
2589 zcw->zcw_done = B_FALSE; in zil_alloc_commit_waiter()
2590 zcw->zcw_zio_error = 0; in zil_alloc_commit_waiter()
2592 return (zcw); in zil_alloc_commit_waiter()
2596 zil_free_commit_waiter(zil_commit_waiter_t *zcw) in zil_free_commit_waiter() argument
2598 ASSERT(!list_link_active(&zcw->zcw_node)); in zil_free_commit_waiter()
2599 ASSERT3P(zcw->zcw_lwb, ==, NULL); in zil_free_commit_waiter()
2600 ASSERT3B(zcw->zcw_done, ==, B_TRUE); in zil_free_commit_waiter()
2601 mutex_destroy(&zcw->zcw_lock); in zil_free_commit_waiter()
2602 cv_destroy(&zcw->zcw_cv); in zil_free_commit_waiter()
2603 kmem_cache_free(zil_zcw_cache, zcw); in zil_free_commit_waiter()
2613 zil_commit_itx_assign(zilog_t *zilog, zil_commit_waiter_t *zcw) in zil_commit_itx_assign() argument
2620 itx->itx_private = zcw; in zil_commit_itx_assign()
2822 zil_commit_waiter_t *zcw = zil_alloc_commit_waiter(); in zil_commit_impl() local
2823 zil_commit_itx_assign(zilog, zcw); in zil_commit_impl()
2825 zil_commit_writer(zilog, zcw); in zil_commit_impl()
2826 zil_commit_waiter(zilog, zcw); in zil_commit_impl()
2828 if (zcw->zcw_zio_error != 0) { in zil_commit_impl()
2838 zilog_t *, zilog, zil_commit_waiter_t *, zcw); in zil_commit_impl()
2842 zil_free_commit_waiter(zcw); in zil_commit_impl()