mirror of https://gitee.com/openkylin/linux.git
f2fs: convert inc/dec_valid_node_count to inc/dec one count
Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
This commit is contained in:
parent
da19b0dc50
commit
ef86d70994
|
@ -706,50 +706,48 @@ static inline block_t __start_sum_addr(struct f2fs_sb_info *sbi)
|
|||
}
|
||||
|
||||
static inline bool inc_valid_node_count(struct f2fs_sb_info *sbi,
|
||||
struct inode *inode,
|
||||
unsigned int count)
|
||||
struct inode *inode)
|
||||
{
|
||||
block_t valid_block_count;
|
||||
unsigned int valid_node_count;
|
||||
|
||||
spin_lock(&sbi->stat_lock);
|
||||
|
||||
valid_block_count = sbi->total_valid_block_count + (block_t)count;
|
||||
sbi->alloc_valid_block_count += (block_t)count;
|
||||
valid_node_count = sbi->total_valid_node_count + count;
|
||||
|
||||
valid_block_count = sbi->total_valid_block_count + 1;
|
||||
if (valid_block_count > sbi->user_block_count) {
|
||||
spin_unlock(&sbi->stat_lock);
|
||||
return false;
|
||||
}
|
||||
|
||||
valid_node_count = sbi->total_valid_node_count + 1;
|
||||
if (valid_node_count > sbi->total_node_count) {
|
||||
spin_unlock(&sbi->stat_lock);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (inode)
|
||||
inode->i_blocks += count;
|
||||
sbi->total_valid_node_count = valid_node_count;
|
||||
sbi->total_valid_block_count = valid_block_count;
|
||||
inode->i_blocks++;
|
||||
|
||||
sbi->alloc_valid_block_count++;
|
||||
sbi->total_valid_node_count++;
|
||||
sbi->total_valid_block_count++;
|
||||
spin_unlock(&sbi->stat_lock);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline void dec_valid_node_count(struct f2fs_sb_info *sbi,
|
||||
struct inode *inode,
|
||||
unsigned int count)
|
||||
struct inode *inode)
|
||||
{
|
||||
spin_lock(&sbi->stat_lock);
|
||||
|
||||
f2fs_bug_on(sbi->total_valid_block_count < count);
|
||||
f2fs_bug_on(sbi->total_valid_node_count < count);
|
||||
f2fs_bug_on(inode->i_blocks < count);
|
||||
f2fs_bug_on(!sbi->total_valid_block_count);
|
||||
f2fs_bug_on(!sbi->total_valid_node_count);
|
||||
f2fs_bug_on(!inode->i_blocks);
|
||||
|
||||
inode->i_blocks -= count;
|
||||
sbi->total_valid_node_count -= count;
|
||||
sbi->total_valid_block_count -= (block_t)count;
|
||||
inode->i_blocks--;
|
||||
sbi->total_valid_node_count--;
|
||||
sbi->total_valid_block_count--;
|
||||
|
||||
spin_unlock(&sbi->stat_lock);
|
||||
}
|
||||
|
|
|
@ -502,7 +502,7 @@ static void truncate_node(struct dnode_of_data *dn)
|
|||
|
||||
/* Deallocate node address */
|
||||
invalidate_blocks(sbi, ni.blk_addr);
|
||||
dec_valid_node_count(sbi, dn->inode, 1);
|
||||
dec_valid_node_count(sbi, dn->inode);
|
||||
set_node_addr(sbi, &ni, NULL_ADDR);
|
||||
|
||||
if (dn->nid == dn->inode->i_ino) {
|
||||
|
@ -851,7 +851,7 @@ struct page *new_node_page(struct dnode_of_data *dn,
|
|||
if (!page)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
if (!inc_valid_node_count(sbi, dn->inode, 1)) {
|
||||
if (!inc_valid_node_count(sbi, dn->inode)) {
|
||||
err = -ENOSPC;
|
||||
goto fail;
|
||||
}
|
||||
|
@ -1560,7 +1560,7 @@ int recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)
|
|||
new_ni = old_ni;
|
||||
new_ni.ino = ino;
|
||||
|
||||
if (!inc_valid_node_count(sbi, NULL, 1))
|
||||
if (!inc_valid_node_count(sbi, NULL))
|
||||
WARN_ON(1);
|
||||
set_node_addr(sbi, &new_ni, NEW_ADDR);
|
||||
inc_valid_inode_count(sbi);
|
||||
|
|
Loading…
Reference in New Issue