1. 07 Feb, 2020 2 commits
  2. 06 Feb, 2020 4 commits
  3. 22 Jan, 2020 16 commits
  4. 03 Jan, 2020 3 commits
  5. 20 Dec, 2019 3 commits
    • Arnd Bergmann's avatar
      nfsd: remove nfs4_reset_lease() declarations · 364d5814
      Arnd Bergmann authored
      The function was removed a long time ago, but the declaration
      and a dummy implementation are still there, referencing the
      deprecated time_t type.
      
      Remove both.
      
      Fixes: f958a132 ("nfsd4: remove unnecessary lease-setting function")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      364d5814
    • Arnd Bergmann's avatar
      nfsd: use ktime_get_real_seconds() in nfs4_verifier · 9104ae49
      Arnd Bergmann authored
      gen_confirm() generates a unique identifier based on the current
      time. This overflows in year 2038, but that is harmless since it
      generally does not lead to duplicates, as long as the time has
      been initialized by a real-time clock or NTP.
      
      Using ktime_get_boottime_seconds() or ktime_get_seconds() would
      avoid the overflow, but it would be more likely to result in
      non-unique numbers.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      9104ae49
    • Arnd Bergmann's avatar
      nfsd: use boottime for lease expiry calculation · 20b7d86f
      Arnd Bergmann authored
      A couple of time_t variables are only used to track the state of the
      lease time and its expiration. The code correctly uses the 'time_after()'
      macro to make this work on 32-bit architectures even beyond year 2038,
      but the get_seconds() function and the time_t type itself are deprecated
      as they behave inconsistently between 32-bit and 64-bit architectures
      and often lead to code that is not y2038 safe.
      
      As a minor issue, using get_seconds() leads to problems with concurrent
      settimeofday() or clock_settime() calls, in the worst case timeout never
      triggering after the time has been set backwards.
      
      Change nfsd to use time64_t and ktime_get_boottime_seconds() here. This
      is clearly excessive, as boottime by itself means we never go beyond 32
      bits, but it does mean we handle this correctly and consistently without
      having to worry about corner cases and should be no more expensive than
      the previous implementation on 64-bit architectures.
      
      The max_cb_time() function gets changed in order to avoid an expensive
      64-bit division operation, but as the lease time is at most one hour,
      there is no change in behavior.
      
      Also do the same for server-to-server copy expiration time.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      [bfields@redhat.com: fix up copy expiration]
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      20b7d86f
  6. 19 Dec, 2019 12 commits