X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_import.h;h=784268c66b5b804bff9394da7de752bd6aba2cfb;hb=fffe8ac7e42b6638bff9fe19c4bfeb6635023c92;hp=1f9456dfaea922b2fa8e04addc2b802c815fa02f;hpb=2b294992edce5af7b79d4300ed3aa1ea6a8db850;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_import.h b/lustre/include/lustre_import.h index 1f9456d..784268c 100644 --- a/lustre/include/lustre_import.h +++ b/lustre/include/lustre_import.h @@ -255,7 +255,7 @@ struct obd_import { struct lustre_handle imp_remote_handle; /** When to perform next ping. time in jiffies. */ cfs_time_t imp_next_ping; - /** When we last succesfully connected. time in 64bit jiffies */ + /** When we last successfully connected. time in 64bit jiffies */ __u64 imp_last_success_conn; /** List of all possible connection for import. */ @@ -333,19 +333,37 @@ static inline unsigned int at_timeout2est(unsigned int val) return (max((val << 2) / 5, 5U) - 4); } -static inline void at_reset(struct adaptive_timeout *at, int val) { - spin_lock(&at->at_lock); +static inline void at_reset_nolock(struct adaptive_timeout *at, int val) +{ at->at_current = val; at->at_worst_ever = val; at->at_worst_time = cfs_time_current_sec(); +} + +static inline void at_reset(struct adaptive_timeout *at, int val) +{ + spin_lock(&at->at_lock); + at_reset_nolock(at, val); spin_unlock(&at->at_lock); } + static inline void at_init(struct adaptive_timeout *at, int val, int flags) { memset(at, 0, sizeof(*at)); spin_lock_init(&at->at_lock); at->at_flags = flags; at_reset(at, val); } + +static inline void at_reinit(struct adaptive_timeout *at, int val, int flags) +{ + spin_lock(&at->at_lock); + at->at_binstart = 0; + memset(at->at_hist, 0, sizeof(at->at_hist)); + at->at_flags = flags; + at_reset_nolock(at, val); + spin_unlock(&at->at_lock); +} + extern unsigned int at_min; static inline int at_get(struct adaptive_timeout *at) { return (at->at_current > at_min) ? at->at_current : at_min;