mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-30 02:21:15 +00:00
ext4: Rename pa_linear to pa_type
Impact: code cleanup This patch rename pa_linear to pa_type and add MB_INODE_PA and MB_GROUP_PA to indicate inode and group prealloc space. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
fe2c8191fa
commit
cc0fb9ad7d
2 changed files with 17 additions and 11 deletions
|
@ -3555,8 +3555,11 @@ static void ext4_mb_put_pa(struct ext4_allocation_context *ac,
|
||||||
spin_unlock(&pa->pa_lock);
|
spin_unlock(&pa->pa_lock);
|
||||||
|
|
||||||
grp_blk = pa->pa_pstart;
|
grp_blk = pa->pa_pstart;
|
||||||
/* If linear, pa_pstart may be in the next group when pa is used up */
|
/*
|
||||||
if (pa->pa_linear)
|
* If doing group-based preallocation, pa_pstart may be in the
|
||||||
|
* next group when pa is used up
|
||||||
|
*/
|
||||||
|
if (pa->pa_type == MB_GROUP_PA)
|
||||||
grp_blk--;
|
grp_blk--;
|
||||||
|
|
||||||
ext4_get_group_no_and_offset(sb, grp_blk, &grp, NULL);
|
ext4_get_group_no_and_offset(sb, grp_blk, &grp, NULL);
|
||||||
|
@ -3651,7 +3654,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
|
||||||
INIT_LIST_HEAD(&pa->pa_inode_list);
|
INIT_LIST_HEAD(&pa->pa_inode_list);
|
||||||
INIT_LIST_HEAD(&pa->pa_group_list);
|
INIT_LIST_HEAD(&pa->pa_group_list);
|
||||||
pa->pa_deleted = 0;
|
pa->pa_deleted = 0;
|
||||||
pa->pa_linear = 0;
|
pa->pa_type = MB_INODE_PA;
|
||||||
|
|
||||||
mb_debug("new inode pa %p: %llu/%u for %u\n", pa,
|
mb_debug("new inode pa %p: %llu/%u for %u\n", pa,
|
||||||
pa->pa_pstart, pa->pa_len, pa->pa_lstart);
|
pa->pa_pstart, pa->pa_len, pa->pa_lstart);
|
||||||
|
@ -3714,7 +3717,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
|
||||||
INIT_LIST_HEAD(&pa->pa_inode_list);
|
INIT_LIST_HEAD(&pa->pa_inode_list);
|
||||||
INIT_LIST_HEAD(&pa->pa_group_list);
|
INIT_LIST_HEAD(&pa->pa_group_list);
|
||||||
pa->pa_deleted = 0;
|
pa->pa_deleted = 0;
|
||||||
pa->pa_linear = 1;
|
pa->pa_type = MB_GROUP_PA;
|
||||||
|
|
||||||
mb_debug("new group pa %p: %llu/%u for %u\n", pa,
|
mb_debug("new group pa %p: %llu/%u for %u\n", pa,
|
||||||
pa->pa_pstart, pa->pa_len, pa->pa_lstart);
|
pa->pa_pstart, pa->pa_len, pa->pa_lstart);
|
||||||
|
@ -3968,7 +3971,7 @@ repeat:
|
||||||
list_del_rcu(&pa->pa_inode_list);
|
list_del_rcu(&pa->pa_inode_list);
|
||||||
spin_unlock(pa->pa_obj_lock);
|
spin_unlock(pa->pa_obj_lock);
|
||||||
|
|
||||||
if (pa->pa_linear)
|
if (pa->pa_type == MB_GROUP_PA)
|
||||||
ext4_mb_release_group_pa(&e4b, pa, ac);
|
ext4_mb_release_group_pa(&e4b, pa, ac);
|
||||||
else
|
else
|
||||||
ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa, ac);
|
ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa, ac);
|
||||||
|
@ -4068,7 +4071,7 @@ repeat:
|
||||||
spin_unlock(&ei->i_prealloc_lock);
|
spin_unlock(&ei->i_prealloc_lock);
|
||||||
|
|
||||||
list_for_each_entry_safe(pa, tmp, &list, u.pa_tmp_list) {
|
list_for_each_entry_safe(pa, tmp, &list, u.pa_tmp_list) {
|
||||||
BUG_ON(pa->pa_linear != 0);
|
BUG_ON(pa->pa_type != MB_INODE_PA);
|
||||||
ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, NULL);
|
ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, NULL);
|
||||||
|
|
||||||
err = ext4_mb_load_buddy(sb, group, &e4b);
|
err = ext4_mb_load_buddy(sb, group, &e4b);
|
||||||
|
@ -4320,7 +4323,7 @@ ext4_mb_discard_lg_preallocations(struct super_block *sb,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* only lg prealloc space */
|
/* only lg prealloc space */
|
||||||
BUG_ON(!pa->pa_linear);
|
BUG_ON(pa->pa_type != MB_GROUP_PA);
|
||||||
|
|
||||||
/* seems this one can be freed ... */
|
/* seems this one can be freed ... */
|
||||||
pa->pa_deleted = 1;
|
pa->pa_deleted = 1;
|
||||||
|
@ -4426,7 +4429,7 @@ static int ext4_mb_release_context(struct ext4_allocation_context *ac)
|
||||||
{
|
{
|
||||||
struct ext4_prealloc_space *pa = ac->ac_pa;
|
struct ext4_prealloc_space *pa = ac->ac_pa;
|
||||||
if (pa) {
|
if (pa) {
|
||||||
if (pa->pa_linear) {
|
if (pa->pa_type == MB_GROUP_PA) {
|
||||||
/* see comment in ext4_mb_use_group_pa() */
|
/* see comment in ext4_mb_use_group_pa() */
|
||||||
spin_lock(&pa->pa_lock);
|
spin_lock(&pa->pa_lock);
|
||||||
pa->pa_pstart += ac->ac_b_ex.fe_len;
|
pa->pa_pstart += ac->ac_b_ex.fe_len;
|
||||||
|
@ -4446,7 +4449,7 @@ static int ext4_mb_release_context(struct ext4_allocation_context *ac)
|
||||||
* doesn't grow big. We need to release
|
* doesn't grow big. We need to release
|
||||||
* alloc_semp before calling ext4_mb_add_n_trim()
|
* alloc_semp before calling ext4_mb_add_n_trim()
|
||||||
*/
|
*/
|
||||||
if (pa->pa_linear && likely(pa->pa_free)) {
|
if ((pa->pa_type == MB_GROUP_PA) && likely(pa->pa_free)) {
|
||||||
spin_lock(pa->pa_obj_lock);
|
spin_lock(pa->pa_obj_lock);
|
||||||
list_del_rcu(&pa->pa_inode_list);
|
list_del_rcu(&pa->pa_inode_list);
|
||||||
spin_unlock(pa->pa_obj_lock);
|
spin_unlock(pa->pa_obj_lock);
|
||||||
|
|
|
@ -132,12 +132,15 @@ struct ext4_prealloc_space {
|
||||||
ext4_lblk_t pa_lstart; /* log. block */
|
ext4_lblk_t pa_lstart; /* log. block */
|
||||||
unsigned short pa_len; /* len of preallocated chunk */
|
unsigned short pa_len; /* len of preallocated chunk */
|
||||||
unsigned short pa_free; /* how many blocks are free */
|
unsigned short pa_free; /* how many blocks are free */
|
||||||
unsigned short pa_linear; /* consumed in one direction
|
unsigned short pa_type; /* pa type. inode or group */
|
||||||
* strictly, for grp prealloc */
|
|
||||||
spinlock_t *pa_obj_lock;
|
spinlock_t *pa_obj_lock;
|
||||||
struct inode *pa_inode; /* hack, for history only */
|
struct inode *pa_inode; /* hack, for history only */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MB_INODE_PA = 0,
|
||||||
|
MB_GROUP_PA = 1
|
||||||
|
};
|
||||||
|
|
||||||
struct ext4_free_extent {
|
struct ext4_free_extent {
|
||||||
ext4_lblk_t fe_logical;
|
ext4_lblk_t fe_logical;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue