Skip to content
  • Arnd Bergmann's avatar
    staging/lustre: use 64-bit times for request times · 219e6de6
    Arnd Bergmann authored
    
    
    All request timestamps and deadlines in lustre are recorded in time_t
    and timeval units, which overflow in 2038 on 32-bit systems.
    
    In this patch, I'm converting them to time64_t and timespec64,
    respectively. Unfortunately, this makes a relatively large patch,
    but I could not find an obvious way to split it up some more without
    breaking atomicity of the change.
    
    Also unfortunately, this introduces two instances of div_u64_rem()
    in the request path, which can be slow on 32-bit architectures. This
    can probably be avoided by a larger restructuring of the code, but
    it is unlikely that lustre is used in performance critical setups
    on 32-bit architectures, so it seems better to optimize for correctness
    rather than speed here.
    
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    219e6de6