提交 3300beda 编写于 作者: A Aneesh Kumar K.V 提交者: Theodore Ts'o

ext4: code cleanup

Rename some variables.  We also unlock locks in the reverse order we
acquired as a part of cleanup.
Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
上级 560671a0
...@@ -329,8 +329,8 @@ ext4_read_block_bitmap(struct super_block *sb, ext4_group_t block_group) ...@@ -329,8 +329,8 @@ ext4_read_block_bitmap(struct super_block *sb, ext4_group_t block_group)
if (desc->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) { if (desc->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) {
ext4_init_block_bitmap(sb, bh, block_group, desc); ext4_init_block_bitmap(sb, bh, block_group, desc);
set_buffer_uptodate(bh); set_buffer_uptodate(bh);
unlock_buffer(bh);
spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group)); spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group));
unlock_buffer(bh);
return bh; return bh;
} }
spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group)); spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group));
......
...@@ -124,8 +124,8 @@ ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group) ...@@ -124,8 +124,8 @@ ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group)
if (desc->bg_flags & cpu_to_le16(EXT4_BG_INODE_UNINIT)) { if (desc->bg_flags & cpu_to_le16(EXT4_BG_INODE_UNINIT)) {
ext4_init_inode_bitmap(sb, bh, block_group, desc); ext4_init_inode_bitmap(sb, bh, block_group, desc);
set_buffer_uptodate(bh); set_buffer_uptodate(bh);
unlock_buffer(bh);
spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group)); spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group));
unlock_buffer(bh);
return bh; return bh;
} }
spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group)); spin_unlock(sb_bgl_lock(EXT4_SB(sb), block_group));
...@@ -585,8 +585,8 @@ static int find_group_other(struct super_block *sb, struct inode *parent, ...@@ -585,8 +585,8 @@ static int find_group_other(struct super_block *sb, struct inode *parent,
struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
{ {
struct super_block *sb; struct super_block *sb;
struct buffer_head *bitmap_bh = NULL; struct buffer_head *inode_bitmap_bh = NULL;
struct buffer_head *bh2; struct buffer_head *group_desc_bh;
ext4_group_t group = 0; ext4_group_t group = 0;
unsigned long ino = 0; unsigned long ino = 0;
struct inode *inode; struct inode *inode;
...@@ -634,41 +634,44 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) ...@@ -634,41 +634,44 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
for (i = 0; i < sbi->s_groups_count; i++) { for (i = 0; i < sbi->s_groups_count; i++) {
err = -EIO; err = -EIO;
gdp = ext4_get_group_desc(sb, group, &bh2); gdp = ext4_get_group_desc(sb, group, &group_desc_bh);
if (!gdp) if (!gdp)
goto fail; goto fail;
brelse(bitmap_bh); brelse(inode_bitmap_bh);
bitmap_bh = ext4_read_inode_bitmap(sb, group); inode_bitmap_bh = ext4_read_inode_bitmap(sb, group);
if (!bitmap_bh) if (!inode_bitmap_bh)
goto fail; goto fail;
ino = 0; ino = 0;
repeat_in_this_group: repeat_in_this_group:
ino = ext4_find_next_zero_bit((unsigned long *) ino = ext4_find_next_zero_bit((unsigned long *)
bitmap_bh->b_data, EXT4_INODES_PER_GROUP(sb), ino); inode_bitmap_bh->b_data,
EXT4_INODES_PER_GROUP(sb), ino);
if (ino < EXT4_INODES_PER_GROUP(sb)) { if (ino < EXT4_INODES_PER_GROUP(sb)) {
BUFFER_TRACE(bitmap_bh, "get_write_access"); BUFFER_TRACE(inode_bitmap_bh, "get_write_access");
err = ext4_journal_get_write_access(handle, bitmap_bh); err = ext4_journal_get_write_access(handle,
inode_bitmap_bh);
if (err) if (err)
goto fail; goto fail;
if (!ext4_set_bit_atomic(sb_bgl_lock(sbi, group), if (!ext4_set_bit_atomic(sb_bgl_lock(sbi, group),
ino, bitmap_bh->b_data)) { ino, inode_bitmap_bh->b_data)) {
/* we won it */ /* we won it */
BUFFER_TRACE(bitmap_bh, BUFFER_TRACE(inode_bitmap_bh,
"call ext4_handle_dirty_metadata"); "call ext4_handle_dirty_metadata");
err = ext4_handle_dirty_metadata(handle, err = ext4_handle_dirty_metadata(handle,
inode, inode,
bitmap_bh); inode_bitmap_bh);
if (err) if (err)
goto fail; goto fail;
goto got; goto got;
} }
/* we lost it */ /* we lost it */
ext4_handle_release_buffer(handle, bitmap_bh); ext4_handle_release_buffer(handle, inode_bitmap_bh);
if (++ino < EXT4_INODES_PER_GROUP(sb)) if (++ino < EXT4_INODES_PER_GROUP(sb))
goto repeat_in_this_group; goto repeat_in_this_group;
...@@ -699,19 +702,21 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) ...@@ -699,19 +702,21 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
goto fail; goto fail;
} }
BUFFER_TRACE(bh2, "get_write_access"); BUFFER_TRACE(group_desc_bh, "get_write_access");
err = ext4_journal_get_write_access(handle, bh2); err = ext4_journal_get_write_access(handle, group_desc_bh);
if (err) goto fail; if (err)
goto fail;
/* We may have to initialize the block bitmap if it isn't already */ /* We may have to initialize the block bitmap if it isn't already */
if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM) && if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) { gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) {
struct buffer_head *block_bh = ext4_read_block_bitmap(sb, group); struct buffer_head *block_bitmap_bh;
BUFFER_TRACE(block_bh, "get block bitmap access"); block_bitmap_bh = ext4_read_block_bitmap(sb, group);
err = ext4_journal_get_write_access(handle, block_bh); BUFFER_TRACE(block_bitmap_bh, "get block bitmap access");
err = ext4_journal_get_write_access(handle, block_bitmap_bh);
if (err) { if (err) {
brelse(block_bh); brelse(block_bitmap_bh);
goto fail; goto fail;
} }
...@@ -719,8 +724,8 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) ...@@ -719,8 +724,8 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
spin_lock(sb_bgl_lock(sbi, group)); spin_lock(sb_bgl_lock(sbi, group));
/* recheck and clear flag under lock if we still need to */ /* recheck and clear flag under lock if we still need to */
if (gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) { if (gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) {
gdp->bg_flags &= cpu_to_le16(~EXT4_BG_BLOCK_UNINIT);
free = ext4_free_blocks_after_init(sb, group, gdp); free = ext4_free_blocks_after_init(sb, group, gdp);
gdp->bg_flags &= cpu_to_le16(~EXT4_BG_BLOCK_UNINIT);
ext4_free_blks_set(sb, gdp, free); ext4_free_blks_set(sb, gdp, free);
gdp->bg_checksum = ext4_group_desc_csum(sbi, group, gdp->bg_checksum = ext4_group_desc_csum(sbi, group,
gdp); gdp);
...@@ -729,12 +734,12 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) ...@@ -729,12 +734,12 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
/* Don't need to dirty bitmap block if we didn't change it */ /* Don't need to dirty bitmap block if we didn't change it */
if (free) { if (free) {
BUFFER_TRACE(block_bh, "dirty block bitmap"); BUFFER_TRACE(block_bitmap_bh, "dirty block bitmap");
err = ext4_handle_dirty_metadata(handle, err = ext4_handle_dirty_metadata(handle,
NULL, block_bh); NULL, block_bitmap_bh);
} }
brelse(block_bh); brelse(block_bitmap_bh);
if (err) if (err)
goto fail; goto fail;
} }
...@@ -778,8 +783,8 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) ...@@ -778,8 +783,8 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
} }
gdp->bg_checksum = ext4_group_desc_csum(sbi, group, gdp); gdp->bg_checksum = ext4_group_desc_csum(sbi, group, gdp);
spin_unlock(sb_bgl_lock(sbi, group)); spin_unlock(sb_bgl_lock(sbi, group));
BUFFER_TRACE(bh2, "call ext4_handle_dirty_metadata"); BUFFER_TRACE(group_desc_bh, "call ext4_handle_dirty_metadata");
err = ext4_handle_dirty_metadata(handle, NULL, bh2); err = ext4_handle_dirty_metadata(handle, NULL, group_desc_bh);
if (err) goto fail; if (err) goto fail;
percpu_counter_dec(&sbi->s_freeinodes_counter); percpu_counter_dec(&sbi->s_freeinodes_counter);
...@@ -881,7 +886,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) ...@@ -881,7 +886,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
iput(inode); iput(inode);
ret = ERR_PTR(err); ret = ERR_PTR(err);
really_out: really_out:
brelse(bitmap_bh); brelse(inode_bitmap_bh);
return ret; return ret;
fail_free_drop: fail_free_drop:
...@@ -893,7 +898,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) ...@@ -893,7 +898,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
inode->i_nlink = 0; inode->i_nlink = 0;
unlock_new_inode(inode); unlock_new_inode(inode);
iput(inode); iput(inode);
brelse(bitmap_bh); brelse(inode_bitmap_bh);
return ERR_PTR(err); return ERR_PTR(err);
} }
......
...@@ -804,8 +804,8 @@ static int ext4_mb_init_cache(struct page *page, char *incore) ...@@ -804,8 +804,8 @@ static int ext4_mb_init_cache(struct page *page, char *incore)
ext4_init_block_bitmap(sb, bh[i], ext4_init_block_bitmap(sb, bh[i],
first_group + i, desc); first_group + i, desc);
set_buffer_uptodate(bh[i]); set_buffer_uptodate(bh[i]);
unlock_buffer(bh[i]);
spin_unlock(sb_bgl_lock(EXT4_SB(sb), first_group + i)); spin_unlock(sb_bgl_lock(EXT4_SB(sb), first_group + i));
unlock_buffer(bh[i]);
continue; continue;
} }
spin_unlock(sb_bgl_lock(EXT4_SB(sb), first_group + i)); spin_unlock(sb_bgl_lock(EXT4_SB(sb), first_group + i));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册