mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
f2fs: do f2fs_balance_fs when block is allocated
commit 3c082b7b5b upstream.
We should consider data block allocation to trigger f2fs_balance_fs.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
baf12a6b24
commit
cb3358c514
@@ -504,7 +504,7 @@ static int __allocate_data_blocks(struct inode *inode, loff_t offset,
|
||||
struct dnode_of_data dn;
|
||||
u64 start = F2FS_BYTES_TO_BLK(offset);
|
||||
u64 len = F2FS_BYTES_TO_BLK(count);
|
||||
bool allocated;
|
||||
bool allocated = false;
|
||||
u64 end_offset;
|
||||
int err = 0;
|
||||
|
||||
@@ -546,7 +546,7 @@ static int __allocate_data_blocks(struct inode *inode, loff_t offset,
|
||||
f2fs_put_dnode(&dn);
|
||||
f2fs_unlock_op(sbi);
|
||||
|
||||
f2fs_balance_fs(sbi, dn.node_changed);
|
||||
f2fs_balance_fs(sbi, allocated);
|
||||
}
|
||||
return err;
|
||||
|
||||
@@ -556,7 +556,7 @@ sync_out:
|
||||
f2fs_put_dnode(&dn);
|
||||
out:
|
||||
f2fs_unlock_op(sbi);
|
||||
f2fs_balance_fs(sbi, dn.node_changed);
|
||||
f2fs_balance_fs(sbi, allocated);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -650,14 +650,14 @@ get_next:
|
||||
if (dn.ofs_in_node >= end_offset) {
|
||||
if (allocated)
|
||||
sync_inode_page(&dn);
|
||||
allocated = false;
|
||||
f2fs_put_dnode(&dn);
|
||||
|
||||
if (create) {
|
||||
f2fs_unlock_op(sbi);
|
||||
f2fs_balance_fs(sbi, dn.node_changed);
|
||||
f2fs_balance_fs(sbi, allocated);
|
||||
f2fs_lock_op(sbi);
|
||||
}
|
||||
allocated = false;
|
||||
|
||||
set_new_dnode(&dn, inode, NULL, NULL, 0);
|
||||
err = get_dnode_of_data(&dn, pgofs, mode);
|
||||
@@ -715,7 +715,7 @@ put_out:
|
||||
unlock_out:
|
||||
if (create) {
|
||||
f2fs_unlock_op(sbi);
|
||||
f2fs_balance_fs(sbi, dn.node_changed);
|
||||
f2fs_balance_fs(sbi, allocated);
|
||||
}
|
||||
out:
|
||||
trace_f2fs_map_blocks(inode, map, err);
|
||||
|
||||
Reference in New Issue
Block a user