diff --git a/lnet/include/libcfs/libcfs.h b/lnet/include/libcfs/libcfs.h index 88f1a37c11eb170affdc5d0a2e31ee9f92a18477..66bf9a8a6f3984addab4f946f0be20efe847ae83 100644 --- a/lnet/include/libcfs/libcfs.h +++ b/lnet/include/libcfs/libcfs.h @@ -358,6 +358,7 @@ struct lc_watchdog *lc_watchdog_add(int time, void *data); /* Enables a watchdog and resets its timer. */ +void lc_watchdog_touch_ms(struct lc_watchdog *lcw, int timeout_ms); void lc_watchdog_touch(struct lc_watchdog *lcw); /* Disable a watchdog; touch it to restart it. */ diff --git a/lnet/libcfs/watchdog.c b/lnet/libcfs/watchdog.c index 22754af525b15ddb6c20a66764a54a00f756fb8b..89d757c2afb7ae4c1c7135fe002d72ace9eb1bb8 100644 --- a/lnet/libcfs/watchdog.c +++ b/lnet/libcfs/watchdog.c @@ -314,7 +314,7 @@ static void lcw_update_time(struct lc_watchdog *lcw, const char *message) lcw->lcw_last_touched = newtime; } -void lc_watchdog_touch(struct lc_watchdog *lcw) +void lc_watchdog_touch_ms(struct lc_watchdog *lcw, int timeout_ms) { ENTRY; LASSERT(lcw != NULL); @@ -326,10 +326,18 @@ void lc_watchdog_touch(struct lc_watchdog *lcw) lcw_update_time(lcw, "touched"); lcw->lcw_state = LC_WATCHDOG_ENABLED; - mod_timer(&lcw->lcw_timer, jiffies + lcw->lcw_time); + mod_timer(&lcw->lcw_timer, jiffies + + cfs_time_seconds(timeout_ms) / 1000); EXIT; } +EXPORT_SYMBOL(lc_watchdog_touch_ms); + +/* deprecated - use above instead */ +void lc_watchdog_touch(struct lc_watchdog *lcw) +{ + lc_watchdog_touch_ms(lcw, cfs_duration_sec(lcw->lcw_time) * 1000); +} EXPORT_SYMBOL(lc_watchdog_touch); void lc_watchdog_disable(struct lc_watchdog *lcw) @@ -395,6 +403,11 @@ struct lc_watchdog *lc_watchdog_add(int timeout_ms, } EXPORT_SYMBOL(lc_watchdog_add); +void lc_watchdog_touch_ms(struct lc_watchdog *lcw, int timeout_ms) +{ +} +EXPORT_SYMBOL(lc_watchdog_touch_ms); + void lc_watchdog_touch(struct lc_watchdog *lcw) { }