mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 03:27:30 -04:00
btrfs: move locking into btrfs_get_reloc_bg_bytenr()
It does not make sense for the single caller to have the responsability to lock the relocation mutex before calling the function and then have the function to assert the lock is held. As this is a function in relocation.c, move the locking details into it. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
committed by
Johannes Thumshirn
parent
b0d27d4379
commit
f51228e1ba
@@ -226,9 +226,7 @@ static void print_data_reloc_error(const struct btrfs_inode *inode, u64 file_off
|
||||
u32 item_size;
|
||||
int ret;
|
||||
|
||||
mutex_lock(&fs_info->reloc_mutex);
|
||||
logical = btrfs_get_reloc_bg_bytenr(fs_info);
|
||||
mutex_unlock(&fs_info->reloc_mutex);
|
||||
|
||||
if (logical == U64_MAX) {
|
||||
btrfs_warn_rl(fs_info, "has data reloc tree but no running relocation");
|
||||
|
||||
@@ -5863,14 +5863,15 @@ int btrfs_reloc_post_snapshot(struct btrfs_trans_handle *trans,
|
||||
*
|
||||
* Return U64_MAX if no running relocation.
|
||||
*/
|
||||
u64 btrfs_get_reloc_bg_bytenr(const struct btrfs_fs_info *fs_info)
|
||||
u64 btrfs_get_reloc_bg_bytenr(struct btrfs_fs_info *fs_info)
|
||||
{
|
||||
u64 logical = U64_MAX;
|
||||
|
||||
lockdep_assert_held(&fs_info->reloc_mutex);
|
||||
|
||||
mutex_lock(&fs_info->reloc_mutex);
|
||||
if (fs_info->reloc_ctl && fs_info->reloc_ctl->block_group)
|
||||
logical = fs_info->reloc_ctl->block_group->start;
|
||||
mutex_unlock(&fs_info->reloc_mutex);
|
||||
|
||||
return logical;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ int btrfs_reloc_post_snapshot(struct btrfs_trans_handle *trans,
|
||||
int btrfs_should_cancel_balance(const struct btrfs_fs_info *fs_info);
|
||||
struct btrfs_root *find_reloc_root(struct btrfs_fs_info *fs_info, u64 bytenr);
|
||||
bool btrfs_should_ignore_reloc_root(const struct btrfs_root *root);
|
||||
u64 btrfs_get_reloc_bg_bytenr(const struct btrfs_fs_info *fs_info);
|
||||
u64 btrfs_get_reloc_bg_bytenr(struct btrfs_fs_info *fs_info);
|
||||
int btrfs_translate_remap(struct btrfs_fs_info *fs_info, u64 *logical, u64 *length);
|
||||
int btrfs_remove_extent_from_remap_tree(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_path *path,
|
||||
|
||||
Reference in New Issue
Block a user