Commit 68f78bf5 authored by Youngjun Park's avatar Youngjun Park Committed by Andrew Morton
Browse files

mm, swap: use SWP_SOLIDSTATE to determine if swap is rotational

The current non rotational check is unreliable as the device's rotational
status can be changed by a user via sysfs.

Use the more reliable SWP_SOLIDSTATE flag which is set at swapon time, to
ensure the nr_rotate_swap count remains consistent.  Plus, it is easy to
read and simple.

Link: https://lkml.kernel.org/r/20251031065011.40863-3-youngjun.park@lge.com


Fixes: 81a0298b ("mm, swap: don't use VMA based swap readahead if HDD is used as swap")
Signed-off-by: default avatarYoungjun Park <youngjun.park@lge.com>
Reviewed-by: default avatarBaoquan He <bhe@redhat.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Chris Li <chrisl@kernel.org>
Cc: Kairui Song <kasong@tencent.com>
Cc: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Nhat Pham <nphamcs@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent cb65082a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2910,7 +2910,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
	if (p->flags & SWP_CONTINUED)
		free_swap_count_continuations(p);

	if (!p->bdev || !bdev_nonrot(p->bdev))
	if (!(p->flags & SWP_SOLIDSTATE))
		atomic_dec(&nr_rotate_swap);

	mutex_lock(&swapon_mutex);