]> git.baikalelectronics.ru Git - kernel.git/commit
nfsd: fix jiffies/time_t mixup in LRU list
authorArnd Bergmann <arnd@arndb.de>
Mon, 4 Nov 2019 13:43:17 +0000 (14:43 +0100)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 19 Dec 2019 22:46:08 +0000 (17:46 -0500)
commit66d8adbe0265883995b6cae6aa2d6e22da3aa8c6
tree822b5fb65ed4c50634cd3ceb6aa6427c124e506b
parentf0b6a480497e32cb591dd7ffddb38400af68b747
nfsd: fix jiffies/time_t mixup in LRU list

The nfsd4_blocked_lock->nbl_time timestamp is recorded in jiffies,
but then compared to a CLOCK_REALTIME timestamp later on, which makes
no sense.

For consistency with the other timestamps, change this to use a time_t.

This is a change in behavior, which may cause regressions, but the
current code is not sensible. On a system with CONFIG_HZ=1000,
the 'time_after((unsigned long)nbl->nbl_time, (unsigned long)cutoff))'
check is false for roughly the first 18 days of uptime and then true
for the next 49 days.

Fixes: 8c38dd2e0bcd ("nfsd: add a LRU list for blocked locks")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4state.c
fs/nfsd/state.h