Lines Matching refs:elr
3441 static int ext4_run_li_request(struct ext4_li_request *elr) in ext4_run_li_request() argument
3444 struct super_block *sb = elr->lr_super; in ext4_run_li_request()
3446 ext4_group_t group = elr->lr_next_group; in ext4_run_li_request()
3451 if (elr->lr_mode == EXT4_LI_MODE_PREFETCH_BBITMAP) { in ext4_run_li_request()
3452 elr->lr_next_group = ext4_mb_prefetch(sb, group, in ext4_run_li_request()
3455 ext4_mb_prefetch_fini(sb, elr->lr_next_group, in ext4_run_li_request()
3457 trace_ext4_prefetch_bitmaps(sb, group, elr->lr_next_group, in ext4_run_li_request()
3459 if (group >= elr->lr_next_group) { in ext4_run_li_request()
3461 if (elr->lr_first_not_zeroed != ngroups && in ext4_run_li_request()
3463 elr->lr_next_group = elr->lr_first_not_zeroed; in ext4_run_li_request()
3464 elr->lr_mode = EXT4_LI_MODE_ITABLE; in ext4_run_li_request()
3488 elr->lr_timeout ? 0 : 1); in ext4_run_li_request()
3490 if (elr->lr_timeout == 0) { in ext4_run_li_request()
3491 elr->lr_timeout = nsecs_to_jiffies((ktime_get_real_ns() - start_time) * in ext4_run_li_request()
3492 EXT4_SB(elr->lr_super)->s_li_wait_mult); in ext4_run_li_request()
3494 elr->lr_next_sched = jiffies + elr->lr_timeout; in ext4_run_li_request()
3495 elr->lr_next_group = group + 1; in ext4_run_li_request()
3504 static void ext4_remove_li_request(struct ext4_li_request *elr) in ext4_remove_li_request() argument
3506 if (!elr) in ext4_remove_li_request()
3509 list_del(&elr->lr_request); in ext4_remove_li_request()
3510 EXT4_SB(elr->lr_super)->s_li_request = NULL; in ext4_remove_li_request()
3511 kfree(elr); in ext4_remove_li_request()
3543 struct ext4_li_request *elr; in ext4_lazyinit_thread() local
3561 elr = list_entry(pos, struct ext4_li_request, in ext4_lazyinit_thread()
3564 if (time_before(jiffies, elr->lr_next_sched)) { in ext4_lazyinit_thread()
3565 if (time_before(elr->lr_next_sched, next_wakeup)) in ext4_lazyinit_thread()
3566 next_wakeup = elr->lr_next_sched; in ext4_lazyinit_thread()
3569 if (down_read_trylock(&elr->lr_super->s_umount)) { in ext4_lazyinit_thread()
3570 if (sb_start_write_trylock(elr->lr_super)) { in ext4_lazyinit_thread()
3578 err = ext4_run_li_request(elr); in ext4_lazyinit_thread()
3579 sb_end_write(elr->lr_super); in ext4_lazyinit_thread()
3583 up_read((&elr->lr_super->s_umount)); in ext4_lazyinit_thread()
3587 ext4_remove_li_request(elr); in ext4_lazyinit_thread()
3591 elr->lr_next_sched = jiffies + in ext4_lazyinit_thread()
3595 if (time_before(elr->lr_next_sched, next_wakeup)) in ext4_lazyinit_thread()
3596 next_wakeup = elr->lr_next_sched; in ext4_lazyinit_thread()
3644 struct ext4_li_request *elr; in ext4_clear_request_list() local
3648 elr = list_entry(pos, struct ext4_li_request, in ext4_clear_request_list()
3650 ext4_remove_li_request(elr); in ext4_clear_request_list()
3720 struct ext4_li_request *elr; in ext4_li_request_new() local
3722 elr = kzalloc(sizeof(*elr), GFP_KERNEL); in ext4_li_request_new()
3723 if (!elr) in ext4_li_request_new()
3726 elr->lr_super = sb; in ext4_li_request_new()
3727 elr->lr_first_not_zeroed = start; in ext4_li_request_new()
3729 elr->lr_mode = EXT4_LI_MODE_PREFETCH_BBITMAP; in ext4_li_request_new()
3731 elr->lr_mode = EXT4_LI_MODE_ITABLE; in ext4_li_request_new()
3732 elr->lr_next_group = start; in ext4_li_request_new()
3740 elr->lr_next_sched = jiffies + (prandom_u32() % in ext4_li_request_new()
3742 return elr; in ext4_li_request_new()
3749 struct ext4_li_request *elr = NULL; in ext4_register_li_request() local
3768 elr = ext4_li_request_new(sb, first_not_zeroed); in ext4_register_li_request()
3769 if (!elr) { in ext4_register_li_request()
3781 list_add(&elr->lr_request, &ext4_li_info->li_request_list); in ext4_register_li_request()
3784 sbi->s_li_request = elr; in ext4_register_li_request()
3790 elr = NULL; in ext4_register_li_request()
3800 kfree(elr); in ext4_register_li_request()