FreeBSD/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
/*
 * Fires when spa_sync has not completed within zfs_deadman_synctime_ms.
 * If the zfs_deadman_enabled flag is set then it inspects all vdev queues
 * looking for potentially hung I/Os.
 */
Fires when spa_sync has not completed within zfs_deadman_synctime_ms.
If the zfs_deadman_enabled flag is set then it inspects all vdev queues
looking for potentially hung I/Os.
Fires when spa_sync has not completed within zfs_deadman_synctime_ms . If the zfs_deadman_enabled flag is set then it inspects all vdev queues looking for potentially hung I / Os .
void
spa_deadman(void *arg)
{
	spa_t *spa = arg;
	if (spa_suspended(spa)) {
#ifdef illumos
		VERIFY(cyclic_reprogram(spa->spa_deadman_cycid, CY_INFINITY));
#else
#endif
		return;
	}
	zfs_dbgmsg("slow spa_sync: started %llu seconds ago, calls %llu",
	    (gethrtime() - spa->spa_sync_starttime) / NANOSEC,
	    ++spa->spa_deadman_calls);
	if (zfs_deadman_enabled)
		vdev_deadman(spa->spa_root_vdev);
#ifdef __FreeBSD__
#ifdef _KERNEL
	callout_schedule(&spa->spa_deadman_cycid,
	    hz * zfs_deadman_checktime_ms / MILLISEC);
#endif
#endif
}
void spa_deadman ( void * arg ) { spa_t * spa = arg ; if ( spa_suspended ( spa ) ) { #ifdef illumos VERIFY ( cyclic_reprogram ( spa -> spa_deadman_cycid , CY_INFINITY ) ) ; #else #endif return ; } zfs_dbgmsg ( " " , ( gethrtime ( ) - spa -> spa_sync_starttime ) / NANOSEC , ++ spa -> spa_deadman_calls ) ; if ( zfs_deadman_enabled ) vdev_deadman ( spa -> spa_root_vdev ) ; #ifdef __FreeBSD__ #ifdef _KERNEL callout_schedule ( & spa -> spa_deadman_cycid , hz * zfs_deadman_checktime_ms / MILLISEC ) ; #endif #endif }
Fires when spa_sync has not completed within zfs_deadman_synctime_ms.
Fires when spa_sync has not completed within zfs_deadman_synctime_ms .
/*
	 * Disable the deadman timer if the pool is suspended.
	 */ /* Nothing.  just don't schedule any future callouts. */