struct super_block *sb = elr->lr_super;
        ext4_group_t ngroups = EXT4_SB(sb)->s_groups_count;
        ext4_group_t group = elr->lr_next_group;
-       unsigned long timeout = 0;
        unsigned int prefetch_ios = 0;
        int ret = 0;
+       u64 start_time;
 
        if (elr->lr_mode == EXT4_LI_MODE_PREFETCH_BBITMAP) {
                elr->lr_next_group = ext4_mb_prefetch(sb, group,
                ret = 1;
 
        if (!ret) {
-               timeout = jiffies;
+               start_time = ktime_get_real_ns();
                ret = ext4_init_inode_table(sb, group,
                                            elr->lr_timeout ? 0 : 1);
                trace_ext4_lazy_itable_init(sb, group);
                if (elr->lr_timeout == 0) {
-                       timeout = (jiffies - timeout) *
-                               EXT4_SB(elr->lr_super)->s_li_wait_mult;
-                       elr->lr_timeout = timeout;
+                       elr->lr_timeout = nsecs_to_jiffies((ktime_get_real_ns() - start_time) *
+                               EXT4_SB(elr->lr_super)->s_li_wait_mult);
                }
                elr->lr_next_sched = jiffies + elr->lr_timeout;
                elr->lr_next_group = group + 1;