Commit 8f0534ec authored by Filipe Manana's avatar Filipe Manana Committed by David Sterba
Browse files

btrfs: mark extent buffer alignment checks as unlikely



We are not expecting to ever fail the extent buffer alignment checks, so
mark them as unlikely to allow the compiler to potentially generate more
optimized code.

Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 6a9e1d1a
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -3228,25 +3228,25 @@ static bool check_eb_alignment(struct btrfs_fs_info *fs_info, u64 start)
{
	const u32 nodesize = fs_info->nodesize;

	if (!IS_ALIGNED(start, fs_info->sectorsize)) {
	if (unlikely(!IS_ALIGNED(start, fs_info->sectorsize))) {
		btrfs_err(fs_info, "bad tree block start %llu", start);
		return true;
	}

	if (nodesize < PAGE_SIZE && !IS_ALIGNED(start, nodesize)) {
	if (unlikely(nodesize < PAGE_SIZE && !IS_ALIGNED(start, nodesize))) {
		btrfs_err(fs_info,
		"tree block is not nodesize aligned, start %llu nodesize %u",
			  start, nodesize);
		return true;
	}
	if (nodesize >= PAGE_SIZE && !PAGE_ALIGNED(start)) {
	if (unlikely(nodesize >= PAGE_SIZE && !PAGE_ALIGNED(start))) {
		btrfs_err(fs_info,
		"tree block is not page aligned, start %llu nodesize %u",
			  start, nodesize);
		return true;
	}
	if (!IS_ALIGNED(start, nodesize) &&
	    !test_and_set_bit(BTRFS_FS_UNALIGNED_TREE_BLOCK, &fs_info->flags)) {
	if (unlikely(!IS_ALIGNED(start, nodesize) &&
		     !test_and_set_bit(BTRFS_FS_UNALIGNED_TREE_BLOCK, &fs_info->flags))) {
		btrfs_warn(fs_info,
"tree block not nodesize aligned, start %llu nodesize %u, can be resolved by a full metadata balance",
			      start, nodesize);