The delegation logic in nfsd uses the somewhat inefficient
seconds_since_boot() function to record time intervals.

Signed-off-by: Arnd Bergmann <a...@arndb.de>
---
 fs/nfsd/nfs4state.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 369e574c5092..bfdb3366239c 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -806,7 +806,7 @@ static void nfs4_free_deleg(struct nfs4_stid *stid)
 static DEFINE_SPINLOCK(blocked_delegations_lock);
 static struct bloom_pair {
        int     entries, old_entries;
-       time_t  swap_time;
+       time64_t swap_time;
        int     new; /* index into 'set' */
        DECLARE_BITMAP(set[2], 256);
 } blocked_delegations;
@@ -818,15 +818,15 @@ static int delegation_blocked(struct knfsd_fh *fh)
 
        if (bd->entries == 0)
                return 0;
-       if (seconds_since_boot() - bd->swap_time > 30) {
+       if (ktime_get_seconds() - bd->swap_time > 30) {
                spin_lock(&blocked_delegations_lock);
-               if (seconds_since_boot() - bd->swap_time > 30) {
+               if (ktime_get_seconds() - bd->swap_time > 30) {
                        bd->entries -= bd->old_entries;
                        bd->old_entries = bd->entries;
                        memset(bd->set[bd->new], 0,
                               sizeof(bd->set[0]));
                        bd->new = 1-bd->new;
-                       bd->swap_time = seconds_since_boot();
+                       bd->swap_time = ktime_get_seconds();
                }
                spin_unlock(&blocked_delegations_lock);
        }
@@ -856,7 +856,7 @@ static void block_delegations(struct knfsd_fh *fh)
        __set_bit((hash>>8)&255, bd->set[bd->new]);
        __set_bit((hash>>16)&255, bd->set[bd->new]);
        if (bd->entries == 0)
-               bd->swap_time = seconds_since_boot();
+               bd->swap_time = ktime_get_seconds();
        bd->entries += 1;
        spin_unlock(&blocked_delegations_lock);
 }
-- 
2.20.0

_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

Reply via email to