btrfs: Open code btrfs_write_and_wait_marked_extents
btrfs_write_and_wait_transaction is essentially a wrapper of btrfs_write_and_wait_marked_extents with the addition of calling clear_btree_io_tree. Having the code split doesn't really bring any benefit. Open code the later into the former and add proper documentation header. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> [ reformat comment ] Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Родитель
0e34693f7b
Коммит
c9b577c01a
|
@ -1083,40 +1083,33 @@ int btrfs_wait_tree_log_extents(struct btrfs_root *log_root, int mark)
|
|||
}
|
||||
|
||||
/*
|
||||
* when btree blocks are allocated, they have some corresponding bits set for
|
||||
* them in one of two extent_io trees. This is used to make sure all of
|
||||
* those extents are on disk for transaction or log commit
|
||||
* When btree blocks are allocated the corresponding extents are marked dirty.
|
||||
* This function ensures such extents are persisted on disk for transaction or
|
||||
* log commit.
|
||||
*
|
||||
* @trans: transaction whose dirty pages we'd like to write
|
||||
*/
|
||||
static int btrfs_write_and_wait_marked_extents(struct btrfs_fs_info *fs_info,
|
||||
struct extent_io_tree *dirty_pages, int mark)
|
||||
{
|
||||
int ret;
|
||||
int ret2;
|
||||
struct blk_plug plug;
|
||||
|
||||
blk_start_plug(&plug);
|
||||
ret = btrfs_write_marked_extents(fs_info, dirty_pages, mark);
|
||||
blk_finish_plug(&plug);
|
||||
ret2 = btrfs_wait_extents(fs_info, dirty_pages);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
if (ret2)
|
||||
return ret2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int btrfs_write_and_wait_transaction(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_fs_info *fs_info)
|
||||
{
|
||||
int ret;
|
||||
int ret2;
|
||||
struct extent_io_tree *dirty_pages = &trans->transaction->dirty_pages;
|
||||
struct blk_plug plug;
|
||||
|
||||
blk_start_plug(&plug);
|
||||
ret = btrfs_write_marked_extents(fs_info, dirty_pages, EXTENT_DIRTY);
|
||||
blk_finish_plug(&plug);
|
||||
ret2 = btrfs_wait_extents(fs_info, dirty_pages);
|
||||
|
||||
ret = btrfs_write_and_wait_marked_extents(fs_info,
|
||||
&trans->transaction->dirty_pages,
|
||||
EXTENT_DIRTY);
|
||||
clear_btree_io_tree(&trans->transaction->dirty_pages);
|
||||
|
||||
return ret;
|
||||
if (ret)
|
||||
return ret;
|
||||
else if (ret2)
|
||||
return ret2;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче