Lines Matching refs:pa

689 		struct ext4_prealloc_space *pa;  in __mb_check_buddy()  local
690 pa = list_entry(cur, struct ext4_prealloc_space, pa_group_list); in __mb_check_buddy()
691 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &groupnr, &k); in __mb_check_buddy()
693 for (i = 0; i < pa->pa_len; i++) in __mb_check_buddy()
2940 struct ext4_prealloc_space *pa; in ext4_mb_cleanup_pa() local
2945 pa = list_entry(cur, struct ext4_prealloc_space, pa_group_list); in ext4_mb_cleanup_pa()
2946 list_del(&pa->pa_group_list); in ext4_mb_cleanup_pa()
2948 kmem_cache_free(ext4_pspace_cachep, pa); in ext4_mb_cleanup_pa()
3413 struct ext4_prealloc_space *pa; in ext4_mb_normalize_request() local
3507 list_for_each_entry_rcu(pa, &ei->i_prealloc_list, pa_inode_list) { in ext4_mb_normalize_request()
3510 if (pa->pa_deleted) in ext4_mb_normalize_request()
3512 spin_lock(&pa->pa_lock); in ext4_mb_normalize_request()
3513 if (pa->pa_deleted) { in ext4_mb_normalize_request()
3514 spin_unlock(&pa->pa_lock); in ext4_mb_normalize_request()
3518 pa_end = pa->pa_lstart + EXT4_C2B(EXT4_SB(ac->ac_sb), in ext4_mb_normalize_request()
3519 pa->pa_len); in ext4_mb_normalize_request()
3523 ac->ac_o_ex.fe_logical < pa->pa_lstart)); in ext4_mb_normalize_request()
3526 if (pa->pa_lstart >= end || pa_end <= start) { in ext4_mb_normalize_request()
3527 spin_unlock(&pa->pa_lock); in ext4_mb_normalize_request()
3530 BUG_ON(pa->pa_lstart <= start && pa_end >= end); in ext4_mb_normalize_request()
3536 } else if (pa->pa_lstart > ac->ac_o_ex.fe_logical) { in ext4_mb_normalize_request()
3537 BUG_ON(pa->pa_lstart > end); in ext4_mb_normalize_request()
3538 end = pa->pa_lstart; in ext4_mb_normalize_request()
3540 spin_unlock(&pa->pa_lock); in ext4_mb_normalize_request()
3547 list_for_each_entry_rcu(pa, &ei->i_prealloc_list, pa_inode_list) { in ext4_mb_normalize_request()
3550 spin_lock(&pa->pa_lock); in ext4_mb_normalize_request()
3551 if (pa->pa_deleted == 0) { in ext4_mb_normalize_request()
3552 pa_end = pa->pa_lstart + EXT4_C2B(EXT4_SB(ac->ac_sb), in ext4_mb_normalize_request()
3553 pa->pa_len); in ext4_mb_normalize_request()
3554 BUG_ON(!(start >= pa_end || end <= pa->pa_lstart)); in ext4_mb_normalize_request()
3556 spin_unlock(&pa->pa_lock); in ext4_mb_normalize_request()
3628 struct ext4_prealloc_space *pa = ac->ac_pa; in ext4_discard_allocated_blocks() local
3632 if (pa == NULL) { in ext4_discard_allocated_blocks()
3652 if (pa->pa_type == MB_INODE_PA) in ext4_discard_allocated_blocks()
3653 pa->pa_free += ac->ac_b_ex.fe_len; in ext4_discard_allocated_blocks()
3660 struct ext4_prealloc_space *pa) in ext4_mb_use_inode_pa() argument
3668 start = pa->pa_pstart + (ac->ac_o_ex.fe_logical - pa->pa_lstart); in ext4_mb_use_inode_pa()
3669 end = min(pa->pa_pstart + EXT4_C2B(sbi, pa->pa_len), in ext4_mb_use_inode_pa()
3676 ac->ac_pa = pa; in ext4_mb_use_inode_pa()
3678 BUG_ON(start < pa->pa_pstart); in ext4_mb_use_inode_pa()
3679 BUG_ON(end > pa->pa_pstart + EXT4_C2B(sbi, pa->pa_len)); in ext4_mb_use_inode_pa()
3680 BUG_ON(pa->pa_free < len); in ext4_mb_use_inode_pa()
3681 pa->pa_free -= len; in ext4_mb_use_inode_pa()
3683 mb_debug(ac->ac_sb, "use %llu/%d from inode pa %p\n", start, len, pa); in ext4_mb_use_inode_pa()
3690 struct ext4_prealloc_space *pa) in ext4_mb_use_group_pa() argument
3694 ext4_get_group_no_and_offset(ac->ac_sb, pa->pa_pstart, in ext4_mb_use_group_pa()
3699 ac->ac_pa = pa; in ext4_mb_use_group_pa()
3708 pa->pa_lstart-len, len, pa); in ext4_mb_use_group_pa()
3719 struct ext4_prealloc_space *pa, in ext4_mb_check_group_pa() argument
3725 atomic_inc(&pa->pa_count); in ext4_mb_check_group_pa()
3726 return pa; in ext4_mb_check_group_pa()
3729 new_distance = abs(goal_block - pa->pa_pstart); in ext4_mb_check_group_pa()
3736 atomic_inc(&pa->pa_count); in ext4_mb_check_group_pa()
3737 return pa; in ext4_mb_check_group_pa()
3750 struct ext4_prealloc_space *pa, *cpa = NULL; in ext4_mb_use_preallocated() local
3759 list_for_each_entry_rcu(pa, &ei->i_prealloc_list, pa_inode_list) { in ext4_mb_use_preallocated()
3763 if (ac->ac_o_ex.fe_logical < pa->pa_lstart || in ext4_mb_use_preallocated()
3764 ac->ac_o_ex.fe_logical >= (pa->pa_lstart + in ext4_mb_use_preallocated()
3765 EXT4_C2B(sbi, pa->pa_len))) in ext4_mb_use_preallocated()
3770 (pa->pa_pstart + EXT4_C2B(sbi, pa->pa_len) > in ext4_mb_use_preallocated()
3775 spin_lock(&pa->pa_lock); in ext4_mb_use_preallocated()
3776 if (pa->pa_deleted == 0 && pa->pa_free) { in ext4_mb_use_preallocated()
3777 atomic_inc(&pa->pa_count); in ext4_mb_use_preallocated()
3778 ext4_mb_use_inode_pa(ac, pa); in ext4_mb_use_preallocated()
3779 spin_unlock(&pa->pa_lock); in ext4_mb_use_preallocated()
3784 spin_unlock(&pa->pa_lock); in ext4_mb_use_preallocated()
3808 list_for_each_entry_rcu(pa, &lg->lg_prealloc_list[i], in ext4_mb_use_preallocated()
3810 spin_lock(&pa->pa_lock); in ext4_mb_use_preallocated()
3811 if (pa->pa_deleted == 0 && in ext4_mb_use_preallocated()
3812 pa->pa_free >= ac->ac_o_ex.fe_len) { in ext4_mb_use_preallocated()
3815 pa, cpa); in ext4_mb_use_preallocated()
3817 spin_unlock(&pa->pa_lock); in ext4_mb_use_preallocated()
3863 struct ext4_prealloc_space *pa; in ext4_mb_generate_from_pa() local
3879 pa = list_entry(cur, struct ext4_prealloc_space, pa_group_list); in ext4_mb_generate_from_pa()
3880 spin_lock(&pa->pa_lock); in ext4_mb_generate_from_pa()
3881 ext4_get_group_no_and_offset(sb, pa->pa_pstart, in ext4_mb_generate_from_pa()
3883 len = pa->pa_len; in ext4_mb_generate_from_pa()
3884 spin_unlock(&pa->pa_lock); in ext4_mb_generate_from_pa()
3895 struct ext4_prealloc_space *pa) in ext4_mb_mark_pa_deleted() argument
3899 if (pa->pa_deleted) { in ext4_mb_mark_pa_deleted()
3901 pa->pa_type, pa->pa_pstart, pa->pa_lstart, in ext4_mb_mark_pa_deleted()
3902 pa->pa_len); in ext4_mb_mark_pa_deleted()
3906 pa->pa_deleted = 1; in ext4_mb_mark_pa_deleted()
3908 if (pa->pa_type == MB_INODE_PA) { in ext4_mb_mark_pa_deleted()
3909 ei = EXT4_I(pa->pa_inode); in ext4_mb_mark_pa_deleted()
3916 struct ext4_prealloc_space *pa; in ext4_mb_pa_callback() local
3917 pa = container_of(head, struct ext4_prealloc_space, u.pa_rcu); in ext4_mb_pa_callback()
3919 BUG_ON(atomic_read(&pa->pa_count)); in ext4_mb_pa_callback()
3920 BUG_ON(pa->pa_deleted == 0); in ext4_mb_pa_callback()
3921 kmem_cache_free(ext4_pspace_cachep, pa); in ext4_mb_pa_callback()
3929 struct super_block *sb, struct ext4_prealloc_space *pa) in ext4_mb_put_pa() argument
3935 spin_lock(&pa->pa_lock); in ext4_mb_put_pa()
3936 if (!atomic_dec_and_test(&pa->pa_count) || pa->pa_free != 0) { in ext4_mb_put_pa()
3937 spin_unlock(&pa->pa_lock); in ext4_mb_put_pa()
3941 if (pa->pa_deleted == 1) { in ext4_mb_put_pa()
3942 spin_unlock(&pa->pa_lock); in ext4_mb_put_pa()
3946 ext4_mb_mark_pa_deleted(sb, pa); in ext4_mb_put_pa()
3947 spin_unlock(&pa->pa_lock); in ext4_mb_put_pa()
3949 grp_blk = pa->pa_pstart; in ext4_mb_put_pa()
3954 if (pa->pa_type == MB_GROUP_PA) in ext4_mb_put_pa()
3974 list_del(&pa->pa_group_list); in ext4_mb_put_pa()
3977 spin_lock(pa->pa_obj_lock); in ext4_mb_put_pa()
3978 list_del_rcu(&pa->pa_inode_list); in ext4_mb_put_pa()
3979 spin_unlock(pa->pa_obj_lock); in ext4_mb_put_pa()
3981 call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); in ext4_mb_put_pa()
3992 struct ext4_prealloc_space *pa; in ext4_mb_new_inode_pa() local
4002 pa = ac->ac_pa; in ext4_mb_new_inode_pa()
4042 pa->pa_lstart = ac->ac_b_ex.fe_logical; in ext4_mb_new_inode_pa()
4043 pa->pa_pstart = ext4_grp_offs_to_block(sb, &ac->ac_b_ex); in ext4_mb_new_inode_pa()
4044 pa->pa_len = ac->ac_b_ex.fe_len; in ext4_mb_new_inode_pa()
4045 pa->pa_free = pa->pa_len; in ext4_mb_new_inode_pa()
4046 spin_lock_init(&pa->pa_lock); in ext4_mb_new_inode_pa()
4047 INIT_LIST_HEAD(&pa->pa_inode_list); in ext4_mb_new_inode_pa()
4048 INIT_LIST_HEAD(&pa->pa_group_list); in ext4_mb_new_inode_pa()
4049 pa->pa_deleted = 0; in ext4_mb_new_inode_pa()
4050 pa->pa_type = MB_INODE_PA; in ext4_mb_new_inode_pa()
4052 mb_debug(sb, "new inode pa %p: %llu/%d for %u\n", pa, pa->pa_pstart, in ext4_mb_new_inode_pa()
4053 pa->pa_len, pa->pa_lstart); in ext4_mb_new_inode_pa()
4054 trace_ext4_mb_new_inode_pa(ac, pa); in ext4_mb_new_inode_pa()
4056 ext4_mb_use_inode_pa(ac, pa); in ext4_mb_new_inode_pa()
4057 atomic_add(pa->pa_free, &sbi->s_mb_preallocated); in ext4_mb_new_inode_pa()
4062 pa->pa_obj_lock = &ei->i_prealloc_lock; in ext4_mb_new_inode_pa()
4063 pa->pa_inode = ac->ac_inode; in ext4_mb_new_inode_pa()
4065 list_add(&pa->pa_group_list, &grp->bb_prealloc_list); in ext4_mb_new_inode_pa()
4067 spin_lock(pa->pa_obj_lock); in ext4_mb_new_inode_pa()
4068 list_add_rcu(&pa->pa_inode_list, &ei->i_prealloc_list); in ext4_mb_new_inode_pa()
4069 spin_unlock(pa->pa_obj_lock); in ext4_mb_new_inode_pa()
4081 struct ext4_prealloc_space *pa; in ext4_mb_new_group_pa() local
4090 pa = ac->ac_pa; in ext4_mb_new_group_pa()
4096 pa->pa_pstart = ext4_grp_offs_to_block(sb, &ac->ac_b_ex); in ext4_mb_new_group_pa()
4097 pa->pa_lstart = pa->pa_pstart; in ext4_mb_new_group_pa()
4098 pa->pa_len = ac->ac_b_ex.fe_len; in ext4_mb_new_group_pa()
4099 pa->pa_free = pa->pa_len; in ext4_mb_new_group_pa()
4100 spin_lock_init(&pa->pa_lock); in ext4_mb_new_group_pa()
4101 INIT_LIST_HEAD(&pa->pa_inode_list); in ext4_mb_new_group_pa()
4102 INIT_LIST_HEAD(&pa->pa_group_list); in ext4_mb_new_group_pa()
4103 pa->pa_deleted = 0; in ext4_mb_new_group_pa()
4104 pa->pa_type = MB_GROUP_PA; in ext4_mb_new_group_pa()
4106 mb_debug(sb, "new group pa %p: %llu/%d for %u\n", pa, pa->pa_pstart, in ext4_mb_new_group_pa()
4107 pa->pa_len, pa->pa_lstart); in ext4_mb_new_group_pa()
4108 trace_ext4_mb_new_group_pa(ac, pa); in ext4_mb_new_group_pa()
4110 ext4_mb_use_group_pa(ac, pa); in ext4_mb_new_group_pa()
4111 atomic_add(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated); in ext4_mb_new_group_pa()
4117 pa->pa_obj_lock = &lg->lg_prealloc_lock; in ext4_mb_new_group_pa()
4118 pa->pa_inode = NULL; in ext4_mb_new_group_pa()
4120 list_add(&pa->pa_group_list, &grp->bb_prealloc_list); in ext4_mb_new_group_pa()
4146 struct ext4_prealloc_space *pa) in ext4_mb_release_inode_pa() argument
4157 BUG_ON(pa->pa_deleted == 0); in ext4_mb_release_inode_pa()
4158 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit); in ext4_mb_release_inode_pa()
4159 grp_blk_start = pa->pa_pstart - EXT4_C2B(sbi, bit); in ext4_mb_release_inode_pa()
4160 BUG_ON(group != e4b->bd_group && pa->pa_len != 0); in ext4_mb_release_inode_pa()
4161 end = bit + pa->pa_len; in ext4_mb_release_inode_pa()
4174 trace_ext4_mb_release_inode_pa(pa, (grp_blk_start + in ext4_mb_release_inode_pa()
4177 mb_free_blocks(pa->pa_inode, e4b, bit, next - bit); in ext4_mb_release_inode_pa()
4180 if (free != pa->pa_free) { in ext4_mb_release_inode_pa()
4183 pa, (unsigned long) pa->pa_lstart, in ext4_mb_release_inode_pa()
4184 (unsigned long) pa->pa_pstart, in ext4_mb_release_inode_pa()
4185 pa->pa_len); in ext4_mb_release_inode_pa()
4187 free, pa->pa_free); in ext4_mb_release_inode_pa()
4200 struct ext4_prealloc_space *pa) in ext4_mb_release_group_pa() argument
4206 trace_ext4_mb_release_group_pa(sb, pa); in ext4_mb_release_group_pa()
4207 BUG_ON(pa->pa_deleted == 0); in ext4_mb_release_group_pa()
4208 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit); in ext4_mb_release_group_pa()
4209 BUG_ON(group != e4b->bd_group && pa->pa_len != 0); in ext4_mb_release_group_pa()
4210 mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len); in ext4_mb_release_group_pa()
4211 atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded); in ext4_mb_release_group_pa()
4212 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len); in ext4_mb_release_group_pa()
4232 struct ext4_prealloc_space *pa, *tmp; in ext4_mb_discard_group_preallocations() local
4267 list_for_each_entry_safe(pa, tmp, in ext4_mb_discard_group_preallocations()
4269 spin_lock(&pa->pa_lock); in ext4_mb_discard_group_preallocations()
4270 if (atomic_read(&pa->pa_count)) { in ext4_mb_discard_group_preallocations()
4271 spin_unlock(&pa->pa_lock); in ext4_mb_discard_group_preallocations()
4275 if (pa->pa_deleted) { in ext4_mb_discard_group_preallocations()
4276 spin_unlock(&pa->pa_lock); in ext4_mb_discard_group_preallocations()
4281 ext4_mb_mark_pa_deleted(sb, pa); in ext4_mb_discard_group_preallocations()
4287 free += pa->pa_free; in ext4_mb_discard_group_preallocations()
4289 spin_unlock(&pa->pa_lock); in ext4_mb_discard_group_preallocations()
4291 list_del(&pa->pa_group_list); in ext4_mb_discard_group_preallocations()
4292 list_add(&pa->u.pa_tmp_list, &list); in ext4_mb_discard_group_preallocations()
4296 list_for_each_entry_safe(pa, tmp, &list, u.pa_tmp_list) { in ext4_mb_discard_group_preallocations()
4299 spin_lock(pa->pa_obj_lock); in ext4_mb_discard_group_preallocations()
4300 list_del_rcu(&pa->pa_inode_list); in ext4_mb_discard_group_preallocations()
4301 spin_unlock(pa->pa_obj_lock); in ext4_mb_discard_group_preallocations()
4303 if (pa->pa_type == MB_GROUP_PA) in ext4_mb_discard_group_preallocations()
4304 ext4_mb_release_group_pa(&e4b, pa); in ext4_mb_discard_group_preallocations()
4306 ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa); in ext4_mb_discard_group_preallocations()
4308 list_del(&pa->u.pa_tmp_list); in ext4_mb_discard_group_preallocations()
4309 call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); in ext4_mb_discard_group_preallocations()
4344 struct ext4_prealloc_space *pa, *tmp; in ext4_discard_preallocations() local
4372 pa = list_entry(ei->i_prealloc_list.prev, in ext4_discard_preallocations()
4374 BUG_ON(pa->pa_obj_lock != &ei->i_prealloc_lock); in ext4_discard_preallocations()
4375 spin_lock(&pa->pa_lock); in ext4_discard_preallocations()
4376 if (atomic_read(&pa->pa_count)) { in ext4_discard_preallocations()
4379 spin_unlock(&pa->pa_lock); in ext4_discard_preallocations()
4388 if (pa->pa_deleted == 0) { in ext4_discard_preallocations()
4389 ext4_mb_mark_pa_deleted(sb, pa); in ext4_discard_preallocations()
4390 spin_unlock(&pa->pa_lock); in ext4_discard_preallocations()
4391 list_del_rcu(&pa->pa_inode_list); in ext4_discard_preallocations()
4392 list_add(&pa->u.pa_tmp_list, &list); in ext4_discard_preallocations()
4398 spin_unlock(&pa->pa_lock); in ext4_discard_preallocations()
4418 list_for_each_entry_safe(pa, tmp, &list, u.pa_tmp_list) { in ext4_discard_preallocations()
4419 BUG_ON(pa->pa_type != MB_INODE_PA); in ext4_discard_preallocations()
4420 group = ext4_get_group_number(sb, pa->pa_pstart); in ext4_discard_preallocations()
4440 list_del(&pa->pa_group_list); in ext4_discard_preallocations()
4441 ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa); in ext4_discard_preallocations()
4447 list_del(&pa->u.pa_tmp_list); in ext4_discard_preallocations()
4448 call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); in ext4_discard_preallocations()
4454 struct ext4_prealloc_space *pa; in ext4_mb_pa_alloc() local
4457 pa = kmem_cache_zalloc(ext4_pspace_cachep, GFP_NOFS); in ext4_mb_pa_alloc()
4458 if (!pa) in ext4_mb_pa_alloc()
4460 atomic_set(&pa->pa_count, 1); in ext4_mb_pa_alloc()
4461 ac->ac_pa = pa; in ext4_mb_pa_alloc()
4467 struct ext4_prealloc_space *pa = ac->ac_pa; in ext4_mb_pa_free() local
4469 BUG_ON(!pa); in ext4_mb_pa_free()
4471 WARN_ON(!atomic_dec_and_test(&pa->pa_count)); in ext4_mb_pa_free()
4472 kmem_cache_free(ext4_pspace_cachep, pa); in ext4_mb_pa_free()
4487 struct ext4_prealloc_space *pa; in ext4_mb_show_pa() local
4492 pa = list_entry(cur, struct ext4_prealloc_space, in ext4_mb_show_pa()
4494 spin_lock(&pa->pa_lock); in ext4_mb_show_pa()
4495 ext4_get_group_no_and_offset(sb, pa->pa_pstart, in ext4_mb_show_pa()
4497 spin_unlock(&pa->pa_lock); in ext4_mb_show_pa()
4499 pa->pa_len); in ext4_mb_show_pa()
4666 struct ext4_prealloc_space *pa, *tmp; in ext4_mb_discard_lg_preallocations() local
4673 list_for_each_entry_rcu(pa, &lg->lg_prealloc_list[order], in ext4_mb_discard_lg_preallocations()
4676 spin_lock(&pa->pa_lock); in ext4_mb_discard_lg_preallocations()
4677 if (atomic_read(&pa->pa_count)) { in ext4_mb_discard_lg_preallocations()
4683 spin_unlock(&pa->pa_lock); in ext4_mb_discard_lg_preallocations()
4686 if (pa->pa_deleted) { in ext4_mb_discard_lg_preallocations()
4687 spin_unlock(&pa->pa_lock); in ext4_mb_discard_lg_preallocations()
4691 BUG_ON(pa->pa_type != MB_GROUP_PA); in ext4_mb_discard_lg_preallocations()
4694 ext4_mb_mark_pa_deleted(sb, pa); in ext4_mb_discard_lg_preallocations()
4695 spin_unlock(&pa->pa_lock); in ext4_mb_discard_lg_preallocations()
4697 list_del_rcu(&pa->pa_inode_list); in ext4_mb_discard_lg_preallocations()
4698 list_add(&pa->u.pa_tmp_list, &discard_list); in ext4_mb_discard_lg_preallocations()
4713 list_for_each_entry_safe(pa, tmp, &discard_list, u.pa_tmp_list) { in ext4_mb_discard_lg_preallocations()
4716 group = ext4_get_group_number(sb, pa->pa_pstart); in ext4_mb_discard_lg_preallocations()
4725 list_del(&pa->pa_group_list); in ext4_mb_discard_lg_preallocations()
4726 ext4_mb_release_group_pa(&e4b, pa); in ext4_mb_discard_lg_preallocations()
4730 list_del(&pa->u.pa_tmp_list); in ext4_mb_discard_lg_preallocations()
4731 call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); in ext4_mb_discard_lg_preallocations()
4749 struct ext4_prealloc_space *tmp_pa, *pa = ac->ac_pa; in ext4_mb_add_n_trim() local
4751 order = fls(pa->pa_free) - 1; in ext4_mb_add_n_trim()
4765 if (!added && pa->pa_free < tmp_pa->pa_free) { in ext4_mb_add_n_trim()
4767 list_add_tail_rcu(&pa->pa_inode_list, in ext4_mb_add_n_trim()
4779 list_add_tail_rcu(&pa->pa_inode_list, in ext4_mb_add_n_trim()
4817 struct ext4_prealloc_space *pa = ac->ac_pa; in ext4_mb_release_context() local
4818 if (pa) { in ext4_mb_release_context()
4819 if (pa->pa_type == MB_GROUP_PA) { in ext4_mb_release_context()
4821 spin_lock(&pa->pa_lock); in ext4_mb_release_context()
4822 pa->pa_pstart += EXT4_C2B(sbi, ac->ac_b_ex.fe_len); in ext4_mb_release_context()
4823 pa->pa_lstart += EXT4_C2B(sbi, ac->ac_b_ex.fe_len); in ext4_mb_release_context()
4824 pa->pa_free -= ac->ac_b_ex.fe_len; in ext4_mb_release_context()
4825 pa->pa_len -= ac->ac_b_ex.fe_len; in ext4_mb_release_context()
4826 spin_unlock(&pa->pa_lock); in ext4_mb_release_context()
4834 if (likely(pa->pa_free)) { in ext4_mb_release_context()
4835 spin_lock(pa->pa_obj_lock); in ext4_mb_release_context()
4836 list_del_rcu(&pa->pa_inode_list); in ext4_mb_release_context()
4837 spin_unlock(pa->pa_obj_lock); in ext4_mb_release_context()
4842 if (pa->pa_type == MB_INODE_PA) { in ext4_mb_release_context()
4847 spin_lock(pa->pa_obj_lock); in ext4_mb_release_context()
4848 list_move(&pa->pa_inode_list, &ei->i_prealloc_list); in ext4_mb_release_context()
4849 spin_unlock(pa->pa_obj_lock); in ext4_mb_release_context()
4852 ext4_mb_put_pa(ac, ac->ac_sb, pa); in ext4_mb_release_context()