diff options
author | Arnd Bergmann <arnd@arndb.de> | 2015-09-27 20:45:09 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-09-29 02:03:34 (GMT) |
commit | a11ef8ca94cccca98e0d7f23d5145cad71dd62f0 (patch) | |
tree | 059257a7f48b14db1c2f27207d3f4a54ab827efd /drivers | |
parent | c8ff18106cf12af944c0c33ada5aa9a0a0e54048 (diff) | |
download | linux-a11ef8ca94cccca98e0d7f23d5145cad71dd62f0.tar.xz |
staging/lustre: avoid unnecessary timeval conversion
The lnet_eq_wait_locked tries to wait for time to pass or an event to
wake up the wait queue. The entire logic seems to be a very elaborate
reimplementation of wait_event().
I'm not trying to clean up the entire logic here, but this at least
gets rid of the multi-way conversion between miliseconds, timeval
and jiffies.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/lustre/lnet/lnet/lib-eq.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/staging/lustre/lnet/lnet/lib-eq.c b/drivers/staging/lustre/lnet/lnet/lib-eq.c index f19ce9a..8b843c5 100644 --- a/drivers/staging/lustre/lnet/lnet/lib-eq.c +++ b/drivers/staging/lustre/lnet/lnet/lib-eq.c @@ -341,12 +341,9 @@ __must_hold(&the_lnet.ln_eq_wait_lock) schedule(); } else { - struct timeval tv; - - now = cfs_time_current(); - schedule_timeout(cfs_time_seconds(tms) / 1000); - cfs_duration_usec(cfs_time_sub(cfs_time_current(), now), &tv); - tms -= (int)(tv.tv_sec * 1000 + tv.tv_usec / 1000); + now = jiffies; + schedule_timeout(msecs_to_jiffies(tms)); + tms -= jiffies_to_msecs(jiffies - now); if (tms < 0) /* no more wait but may have new event */ tms = 0; } |