|
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 |
|