Commit 8e3dffc6 authored by Wang Shilong's avatar Wang Shilong Committed by Jan Kara

Ext2: mark inode dirty after the function dquot_free_block_nodirty is called

We should mark inode dirty after the function dquot_free_block_nodirty
is called.Besides,add a check whether it is necessary to call
dquot_free_block_nodirty functon.
Signed-off-by: default avatarWang Shilong <wangsl-fnst@cn.fujitsu.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent 98783e45
...@@ -568,8 +568,11 @@ void ext2_free_blocks (struct inode * inode, unsigned long block, ...@@ -568,8 +568,11 @@ void ext2_free_blocks (struct inode * inode, unsigned long block,
} }
error_return: error_return:
brelse(bitmap_bh); brelse(bitmap_bh);
release_blocks(sb, freed); if (freed) {
dquot_free_block_nodirty(inode, freed); release_blocks(sb, freed);
dquot_free_block_nodirty(inode, freed);
mark_inode_dirty(inode);
}
} }
/** /**
...@@ -1412,9 +1415,11 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, ...@@ -1412,9 +1415,11 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal,
*errp = 0; *errp = 0;
brelse(bitmap_bh); brelse(bitmap_bh);
dquot_free_block_nodirty(inode, *count-num); if (num < *count) {
mark_inode_dirty(inode); dquot_free_block_nodirty(inode, *count-num);
*count = num; mark_inode_dirty(inode);
*count = num;
}
return ret_block; return ret_block;
io_error: io_error:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment