Lines Matching refs:elr

3267 static int ext4_run_li_request(struct ext4_li_request *elr)  in ext4_run_li_request()  argument
3270 struct super_block *sb = elr->lr_super; in ext4_run_li_request()
3272 ext4_group_t group = elr->lr_next_group; in ext4_run_li_request()
3277 if (elr->lr_mode == EXT4_LI_MODE_PREFETCH_BBITMAP) { in ext4_run_li_request()
3278 elr->lr_next_group = ext4_mb_prefetch(sb, group, in ext4_run_li_request()
3281 ext4_mb_prefetch_fini(sb, elr->lr_next_group, in ext4_run_li_request()
3283 trace_ext4_prefetch_bitmaps(sb, group, elr->lr_next_group, in ext4_run_li_request()
3285 if (group >= elr->lr_next_group) { in ext4_run_li_request()
3287 if (elr->lr_first_not_zeroed != ngroups && in ext4_run_li_request()
3289 elr->lr_next_group = elr->lr_first_not_zeroed; in ext4_run_li_request()
3290 elr->lr_mode = EXT4_LI_MODE_ITABLE; in ext4_run_li_request()
3314 elr->lr_timeout ? 0 : 1); in ext4_run_li_request()
3316 if (elr->lr_timeout == 0) { in ext4_run_li_request()
3317 elr->lr_timeout = nsecs_to_jiffies((ktime_get_real_ns() - start_time) * in ext4_run_li_request()
3318 EXT4_SB(elr->lr_super)->s_li_wait_mult); in ext4_run_li_request()
3320 elr->lr_next_sched = jiffies + elr->lr_timeout; in ext4_run_li_request()
3321 elr->lr_next_group = group + 1; in ext4_run_li_request()
3330 static void ext4_remove_li_request(struct ext4_li_request *elr) in ext4_remove_li_request() argument
3332 if (!elr) in ext4_remove_li_request()
3335 list_del(&elr->lr_request); in ext4_remove_li_request()
3336 EXT4_SB(elr->lr_super)->s_li_request = NULL; in ext4_remove_li_request()
3337 kfree(elr); in ext4_remove_li_request()
3369 struct ext4_li_request *elr; in ext4_lazyinit_thread() local
3386 elr = list_entry(pos, struct ext4_li_request, in ext4_lazyinit_thread()
3389 if (time_before(jiffies, elr->lr_next_sched)) { in ext4_lazyinit_thread()
3390 if (time_before(elr->lr_next_sched, next_wakeup)) in ext4_lazyinit_thread()
3391 next_wakeup = elr->lr_next_sched; in ext4_lazyinit_thread()
3394 if (down_read_trylock(&elr->lr_super->s_umount)) { in ext4_lazyinit_thread()
3395 if (sb_start_write_trylock(elr->lr_super)) { in ext4_lazyinit_thread()
3403 err = ext4_run_li_request(elr); in ext4_lazyinit_thread()
3404 sb_end_write(elr->lr_super); in ext4_lazyinit_thread()
3408 up_read((&elr->lr_super->s_umount)); in ext4_lazyinit_thread()
3412 ext4_remove_li_request(elr); in ext4_lazyinit_thread()
3416 elr->lr_next_sched = jiffies + in ext4_lazyinit_thread()
3420 if (time_before(elr->lr_next_sched, next_wakeup)) in ext4_lazyinit_thread()
3421 next_wakeup = elr->lr_next_sched; in ext4_lazyinit_thread()
3469 struct ext4_li_request *elr; in ext4_clear_request_list() local
3473 elr = list_entry(pos, struct ext4_li_request, in ext4_clear_request_list()
3475 ext4_remove_li_request(elr); in ext4_clear_request_list()
3545 struct ext4_li_request *elr; in ext4_li_request_new() local
3547 elr = kzalloc(sizeof(*elr), GFP_KERNEL); in ext4_li_request_new()
3548 if (!elr) in ext4_li_request_new()
3551 elr->lr_super = sb; in ext4_li_request_new()
3552 elr->lr_first_not_zeroed = start; in ext4_li_request_new()
3554 elr->lr_mode = EXT4_LI_MODE_ITABLE; in ext4_li_request_new()
3555 elr->lr_next_group = start; in ext4_li_request_new()
3557 elr->lr_mode = EXT4_LI_MODE_PREFETCH_BBITMAP; in ext4_li_request_new()
3565 elr->lr_next_sched = jiffies + (prandom_u32() % in ext4_li_request_new()
3567 return elr; in ext4_li_request_new()
3574 struct ext4_li_request *elr = NULL; in ext4_register_li_request() local
3593 elr = ext4_li_request_new(sb, first_not_zeroed); in ext4_register_li_request()
3594 if (!elr) { in ext4_register_li_request()
3606 list_add(&elr->lr_request, &ext4_li_info->li_request_list); in ext4_register_li_request()
3609 sbi->s_li_request = elr; in ext4_register_li_request()
3615 elr = NULL; in ext4_register_li_request()
3625 kfree(elr); in ext4_register_li_request()