• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/

Lines Matching refs:zcw

934 zil_commit_waiter_skip(zil_commit_waiter_t *zcw)
936 mutex_enter(&zcw->zcw_lock);
937 ASSERT3B(zcw->zcw_done, ==, B_FALSE);
938 zcw->zcw_done = B_TRUE;
939 cv_broadcast(&zcw->zcw_cv);
940 mutex_exit(&zcw->zcw_lock);
950 zil_commit_waiter_link_lwb(zil_commit_waiter_t *zcw, lwb_t *lwb)
958 mutex_enter(&zcw->zcw_lock);
959 ASSERT(!list_link_active(&zcw->zcw_node));
960 ASSERT3P(zcw->zcw_lwb, ==, NULL);
966 list_insert_tail(&lwb->lwb_waiters, zcw);
967 zcw->zcw_lwb = lwb;
968 mutex_exit(&zcw->zcw_lock);
977 zil_commit_waiter_link_nolwb(zil_commit_waiter_t *zcw, list_t *nolwb)
979 mutex_enter(&zcw->zcw_lock);
980 ASSERT(!list_link_active(&zcw->zcw_node));
981 ASSERT3P(zcw->zcw_lwb, ==, NULL);
982 list_insert_tail(nolwb, zcw);
983 mutex_exit(&zcw->zcw_lock);
1073 zil_commit_waiter_t *zcw;
1110 while ((zcw = list_head(&lwb->lwb_waiters)) != NULL) {
1111 mutex_enter(&zcw->zcw_lock);
1113 ASSERT(list_link_active(&zcw->zcw_node));
1114 list_remove(&lwb->lwb_waiters, zcw);
1116 ASSERT3P(zcw->zcw_lwb, ==, lwb);
1117 zcw->zcw_lwb = NULL;
1119 zcw->zcw_zio_error = zio->io_error;
1121 ASSERT3B(zcw->zcw_done, ==, B_FALSE);
1122 zcw->zcw_done = B_TRUE;
1123 cv_broadcast(&zcw->zcw_cv);
1125 mutex_exit(&zcw->zcw_lock);
2270 zil_commit_waiter_t *zcw;
2271 while (zcw = list_head(&nolwb_waiters)) {
2272 zil_commit_waiter_skip(zcw);
2273 list_remove(&nolwb_waiters, zcw);
2347 zil_commit_writer(zilog_t *zilog, zil_commit_waiter_t *zcw)
2354 if (zcw->zcw_lwb != NULL || zcw->zcw_done) {
2383 zil_commit_waiter_timeout(zilog_t *zilog, zil_commit_waiter_t *zcw)
2386 ASSERT(MUTEX_HELD(&zcw->zcw_lock));
2387 ASSERT3B(zcw->zcw_done, ==, B_FALSE);
2389 lwb_t *lwb = zcw->zcw_lwb;
2412 mutex_exit(&zcw->zcw_lock);
2414 mutex_enter(&zcw->zcw_lock);
2424 if (zcw->zcw_done)
2427 ASSERT3P(lwb, ==, zcw->zcw_lwb);
2503 mutex_exit(&zcw->zcw_lock);
2505 mutex_enter(&zcw->zcw_lock);
2510 ASSERT(MUTEX_HELD(&zcw->zcw_lock));
2533 zil_commit_waiter(zilog_t *zilog, zil_commit_waiter_t *zcw)
2539 mutex_enter(&zcw->zcw_lock);
2557 while (!zcw->zcw_done) {
2558 ASSERT(MUTEX_HELD(&zcw->zcw_lock));
2560 lwb_t *lwb = zcw->zcw_lwb;
2576 * "zcw" variable) to be found in this "in between" state;
2593 clock_t timeleft = cv_timedwait_hires(&zcw->zcw_cv,
2594 &zcw->zcw_lock, wakeup, USEC2NSEC(1),
2597 if (timeleft >= 0 || zcw->zcw_done)
2600 int wait_err = cv_timedwait_sbt(&zcw->zcw_cv,
2601 &zcw->zcw_lock, wakeup, SBT_1NS, C_ABSOLUTE);
2602 if (wait_err != EWOULDBLOCK || zcw->zcw_done)
2607 zil_commit_waiter_timeout(zilog, zcw);
2609 if (!zcw->zcw_done) {
2618 ASSERT3P(lwb, ==, zcw->zcw_lwb);
2638 cv_wait(&zcw->zcw_cv, &zcw->zcw_lock);
2642 mutex_exit(&zcw->zcw_lock);
2648 zil_commit_waiter_t *zcw = kmem_cache_alloc(zil_zcw_cache, KM_SLEEP);
2650 cv_init(&zcw->zcw_cv, NULL, CV_DEFAULT, NULL);
2651 mutex_init(&zcw->zcw_lock, NULL, MUTEX_DEFAULT, NULL);
2652 list_link_init(&zcw->zcw_node);
2653 zcw->zcw_lwb = NULL;
2654 zcw->zcw_done = B_FALSE;
2655 zcw->zcw_zio_error = 0;
2657 return (zcw);
2661 zil_free_commit_waiter(zil_commit_waiter_t *zcw)
2663 ASSERT(!list_link_active(&zcw->zcw_node));
2664 ASSERT3P(zcw->zcw_lwb, ==, NULL);
2665 ASSERT3B(zcw->zcw_done, ==, B_TRUE);
2666 mutex_destroy(&zcw->zcw_lock);
2667 cv_destroy(&zcw->zcw_cv);
2668 kmem_cache_free(zil_zcw_cache, zcw);
2678 zil_commit_itx_assign(zilog_t *zilog, zil_commit_waiter_t *zcw)
2685 itx->itx_private = zcw;
2887 zil_commit_waiter_t *zcw = zil_alloc_commit_waiter();
2888 zil_commit_itx_assign(zilog, zcw);
2890 zil_commit_writer(zilog, zcw);
2891 zil_commit_waiter(zilog, zcw);
2893 if (zcw->zcw_zio_error != 0) {
2903 zilog_t *, zilog, zil_commit_waiter_t *, zcw);
2907 zil_free_commit_waiter(zcw);