aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei Yang <richard.weiyang@gmail.com>2020-06-01 21:49:07 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2020-06-02 10:59:09 -0700
commit7b9e2de130954af174e6f7aff278cf1ec5f39675 (patch)
tree2ebb38107c36c0c77738259f6a46fd6a3dd6e517
parentfdff1debb9650ea43617487500f48168ce432cb7 (diff)
downloadlinux-stable-7b9e2de130954af174e6f7aff278cf1ec5f39675.tar.gz
mm/swapfile.c: omit a duplicate code by compare tmp and max first
There are two duplicate code to handle the case when there is no available swap entry. To avoid this, we can compare tmp and max first and let the second guard do its job. No functional change is expected. Signed-off-by: Wei Yang <richard.weiyang@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: "Huang, Ying" <ying.huang@intel.com> Cc: Tim Chen <tim.c.chen@linux.intel.com> Cc: Hugh Dickins <hughd@google.com> Link: http://lkml.kernel.org/r/20200421213824.8099-3-richard.weiyang@gmail.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/swapfile.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c
index c74c9e1dc50d58..1743386d240120 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -629,17 +629,15 @@ new_cluster:
tmp = cluster->next;
max = min_t(unsigned long, si->max,
(cluster_next(&cluster->index) + 1) * SWAPFILE_CLUSTER);
- if (tmp >= max) {
- cluster_set_null(&cluster->index);
- goto new_cluster;
- }
- ci = lock_cluster(si, tmp);
- while (tmp < max) {
- if (!si->swap_map[tmp])
- break;
- tmp++;
+ if (tmp < max) {
+ ci = lock_cluster(si, tmp);
+ while (tmp < max) {
+ if (!si->swap_map[tmp])
+ break;
+ tmp++;
+ }
+ unlock_cluster(ci);
}
- unlock_cluster(ci);
if (tmp >= max) {
cluster_set_null(&cluster->index);
goto new_cluster;