• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/contrib/openzfs/cmd/zed/agents/

Lines Matching refs:hdl

122 zfs_case_serialize(fmd_hdl_t *hdl, zfs_case_t *zcp)
131 zfs_case_unserialize(fmd_hdl_t *hdl, fmd_case_t *cp)
135 zcp = fmd_hdl_zalloc(hdl, sizeof (zfs_case_t), FMD_SLEEP);
138 fmd_buf_read(hdl, cp, CASE_DATA, &zcp->zc_data,
142 fmd_hdl_free(hdl, zcp, sizeof (zfs_case_t));
153 zcp->zc_remove_timer = fmd_timer_install(hdl, zcp,
159 fmd_case_setspecific(hdl, cp, zcp);
311 zfs_purge_cases(fmd_hdl_t *hdl)
315 libzfs_handle_t *zhdl = fmd_hdl_getspecific(hdl);
352 fmd_case_close(hdl, zcp->zc_case);
376 zfs_case_solve(fmd_hdl_t *hdl, zfs_case_t *zcp, const char *faultname,
382 fmd_hdl_debug(hdl, "solving fault '%s'", faultname);
389 detector = fmd_nvl_alloc(hdl, FMD_SLEEP);
400 fault = fmd_nvl_create_fault(hdl, faultname, 100, detector,
402 fmd_case_add_suspect(hdl, zcp->zc_case, fault);
406 fmd_case_solve(hdl, zcp->zc_case);
410 fmd_timer_remove(hdl, zcp->zc_remove_timer);
415 zfs_case_serialize(hdl, zcp);
429 zfs_ereport_when(fmd_hdl_t *hdl, nvlist_t *nvl, er_timeval_t *when)
448 zfs_fm_recv(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl, const char *class)
465 if (fmd_nvl_class_match(hdl, nvl, "sysevent.fs.zfs.*")) {
466 fmd_hdl_debug(hdl, "purging orphaned cases from %s",
468 zfs_purge_cases(hdl);
473 isresource = fmd_nvl_class_match(hdl, nvl, "resource.fs.zfs.*");
500 fmd_hdl_debug(hdl, "ignoring '%s' during import", class);
508 (fmd_nvl_class_match(hdl, nvl,
510 fmd_nvl_class_match(hdl, nvl,
512 fmd_nvl_class_match(hdl, nvl,
514 fmd_hdl_debug(hdl, "ignoring '%s' during pool open", class);
543 zfs_ereport_when(hdl, nvl, &er_when);
567 fmd_hdl_debug(hdl, "ignoring pool %llx, "
580 libzfs_handle_t *zhdl = fmd_hdl_getspecific(hdl);
593 fmd_hdl_debug(hdl, "ignoring pool %llx, "
615 fmd_hdl_debug(hdl, "discarding '%s for vdev %llu",
636 cs = fmd_case_open(hdl, NULL);
638 fmd_hdl_debug(hdl, "opening case for vdev %llu due to '%s'",
646 fmd_buf_create(hdl, cs, CASE_DATA, sizeof (zfs_case_data_t));
654 fmd_buf_write(hdl, cs, CASE_DATA, &data, sizeof (data));
656 zcp = zfs_case_unserialize(hdl, cs);
663 fmd_hdl_debug(hdl, "resource event '%s'", class);
665 if (fmd_nvl_class_match(hdl, nvl,
674 fmd_case_close(hdl, zcp->zc_case);
675 } else if (fmd_nvl_class_match(hdl, nvl,
687 fmd_timer_remove(hdl, zcp->zc_remove_timer);
689 zfs_case_serialize(hdl, zcp);
692 fmd_serd_reset(hdl, zcp->zc_data.zc_serd_io);
694 fmd_serd_reset(hdl,
696 } else if (fmd_nvl_class_match(hdl, nvl,
704 fmd_hdl_debug(hdl, "closing case after a "
706 fmd_case_close(hdl, zcp->zc_case);
716 fmd_case_add_ereport(hdl, zcp->zc_case, ep);
721 if (fmd_case_solved(hdl, zcp->zc_case))
724 fmd_hdl_debug(hdl, "error event '%s'", class);
740 if (fmd_nvl_class_match(hdl, nvl,
751 fmd_case_close(hdl, dcp->zc_case);
754 zfs_case_solve(hdl, zcp, "fault.fs.zfs.pool", B_TRUE);
755 } else if (fmd_nvl_class_match(hdl, nvl,
760 zfs_case_solve(hdl, zcp, "fault.fs.zfs.log_replay", B_TRUE);
761 } else if (fmd_nvl_class_match(hdl, nvl, "ereport.fs.zfs.vdev.*")) {
765 zfs_case_solve(hdl, zcp, "fault.fs.zfs.device", B_TRUE);
766 } else if (fmd_nvl_class_match(hdl, nvl,
768 fmd_nvl_class_match(hdl, nvl,
770 fmd_nvl_class_match(hdl, nvl,
772 fmd_nvl_class_match(hdl, nvl,
784 if (fmd_nvl_class_match(hdl, nvl,
789 fmd_serd_create(hdl, zcp->zc_data.zc_serd_io,
790 fmd_prop_get_int32(hdl, "io_N"),
791 fmd_prop_get_int64(hdl, "io_T"));
792 zfs_case_serialize(hdl, zcp);
794 if (fmd_serd_record(hdl, zcp->zc_data.zc_serd_io, ep))
796 } else if (fmd_nvl_class_match(hdl, nvl,
801 fmd_serd_create(hdl,
803 fmd_prop_get_int32(hdl, "checksum_N"),
804 fmd_prop_get_int64(hdl, "checksum_T"));
805 zfs_case_serialize(hdl, zcp);
807 if (fmd_serd_record(hdl,
809 zfs_case_solve(hdl, zcp,
812 } else if (fmd_nvl_class_match(hdl, nvl,
819 zfs_case_solve(hdl, zcp,
824 zfs_case_solve(hdl, zcp,
827 } else if (fmd_nvl_class_match(hdl, nvl,
842 fmd_timer_remove(hdl, zcp->zc_remove_timer);
843 zcp->zc_remove_timer = fmd_timer_install(hdl, zcp, NULL,
847 zfs_case_serialize(hdl, zcp);
859 zfs_fm_timeout(fmd_hdl_t *hdl, id_t id, void *data)
864 zfs_case_solve(hdl, zcp, "fault.fs.zfs.vdev.io", B_FALSE);
872 zfs_fm_close(fmd_hdl_t *hdl, fmd_case_t *cs)
874 zfs_case_t *zcp = fmd_case_getspecific(hdl, cs);
877 fmd_serd_destroy(hdl, zcp->zc_data.zc_serd_checksum);
879 fmd_serd_destroy(hdl, zcp->zc_data.zc_serd_io);
881 fmd_timer_remove(hdl, zcp->zc_remove_timer);
885 fmd_hdl_free(hdl, zcp, sizeof (zfs_case_t));
893 zfs_fm_gc(fmd_hdl_t *hdl)
895 zfs_purge_cases(hdl);
920 _zfs_diagnosis_init(fmd_hdl_t *hdl)
941 if (fmd_hdl_register(hdl, FMD_API_VERSION, &fmd_info) != 0) {
948 fmd_hdl_setspecific(hdl, zhdl);
950 (void) fmd_stat_create(hdl, FMD_STAT_NOALLOC, sizeof (zfs_stats) /
953 zfs_remove_timeout = fmd_prop_get_int64(hdl, "remove_timeout");
957 _zfs_diagnosis_fini(fmd_hdl_t *hdl)
968 fmd_hdl_debug(hdl, "removing case ena %llu",
972 fmd_hdl_free(hdl, zcp, sizeof (zfs_case_t));
979 zhdl = fmd_hdl_getspecific(hdl);