Qu Wenruo f2e361
From 2d974619a77f106f3d1341686dea95c0eaad601f Mon Sep 17 00:00:00 2001
Qu Wenruo f2e361
From: Qu Wenruo <wqu@suse.com>
Qu Wenruo f2e361
Date: Wed, 23 Oct 2019 21:57:26 +0800
Qu Wenruo f2e361
Patch-mainline: v5.5-rc1
Qu Wenruo f2e361
Git-commit: 2d974619a77f106f3d1341686dea95c0eaad601f
Qu Wenruo f2e361
References: bsc#1151910
Qu Wenruo f2e361
Subject: [PATCH 1/2] btrfs: volumes: Use more straightforward way to calculate
Qu Wenruo f2e361
 map length
Qu Wenruo f2e361
Qu Wenruo f2e361
The old code goes:
Qu Wenruo f2e361
Qu Wenruo f2e361
 	offset = logical - em->start;
Qu Wenruo f2e361
	length = min_t(u64, em->len - offset, length);
Qu Wenruo f2e361
Qu Wenruo f2e361
Where @length calculation is dependent on offset, it can take reader
Qu Wenruo f2e361
several more seconds to find it's just the same code as:
Qu Wenruo f2e361
Qu Wenruo f2e361
 	offset = logical - em->start;
Qu Wenruo f2e361
	length = min_t(u64, em->start + em->len - logical, length);
Qu Wenruo f2e361
Qu Wenruo f2e361
Use above code to make the length calculate independent from other
Qu Wenruo f2e361
variable, thus slightly increase the readability.
Qu Wenruo f2e361
Qu Wenruo f2e361
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Qu Wenruo f2e361
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Qu Wenruo f2e361
Signed-off-by: Qu Wenruo <wqu@suse.com>
Qu Wenruo f2e361
Reviewed-by: David Sterba <dsterba@suse.com>
Qu Wenruo f2e361
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo f2e361
---
Qu Wenruo f2e361
 fs/btrfs/volumes.c | 2 +-
Qu Wenruo f2e361
 1 file changed, 1 insertion(+), 1 deletion(-)
Qu Wenruo f2e361
Qu Wenruo f2e361
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
Qu Wenruo f2e361
index f534a6a5553e..6a0288d17b7d 100644
Qu Wenruo f2e361
--- a/fs/btrfs/volumes.c
Qu Wenruo f2e361
+++ b/fs/btrfs/volumes.c
Qu Wenruo f2e361
@@ -5412,7 +5412,7 @@ static int __btrfs_map_block_for_discard(struct btrfs_fs_info *fs_info,
Qu Wenruo f2e361
 	}
Qu Wenruo f2e361
 
Qu Wenruo f2e361
 	offset = logical - em->start;
Qu Wenruo f2e361
-	length = min_t(u64, em->len - offset, length);
Qu Wenruo f2e361
+	length = min_t(u64, em->start + em->len - logical, length);
Qu Wenruo f2e361
 
Qu Wenruo f2e361
 	stripe_len = map->stripe_len;
Qu Wenruo f2e361
 	/*
Qu Wenruo f2e361
-- 
Qu Wenruo f2e361
2.24.1
Qu Wenruo f2e361