linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: brauner@kernel.org, akpm@linux-foundation.org
Cc: linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org,
	linux-mm@kvack.org, gost.dev@samsung.com, p.raghav@samsung.com,
	da.gomez@samsung.com, mcgrof@kernel.org
Subject: [PATCH] swapfile: disable swapon for bs > ps devices
Date: Fri,  2 May 2025 16:13:09 -0700	[thread overview]
Message-ID: <20250502231309.766016-1-mcgrof@kernel.org> (raw)

Devices which have a requirement for bs > ps cannot be supported for
swap as swap still needs work. Now that the block device cache sets the
min order for block devices we need this stop gap otherwise all
swap operations are rejected.

Without this you'll end up with errors on these devices as the swap
code still needs much love to support min order.

# cat /sys/block/nvme3n1/queue/logical_block_size  16384
# mkswap /dev/nvme3n1
mkswap: /dev/nvme3n1: warning: wiping old swap signature.
Setting up swapspace version 1, size = 100 GiB (107374178304 bytes)
no label, UUID=6af76b5c-7e7b-4902-b7f7-4c24dde6fa36
# swapon /dev/nvme3n1
swapon: /dev/nvme3n1: swapon failed: Invalid argument

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---

I had posted an RFC about a heads up about us needing this less than a year
ago [0] and well, we now need it for v6.15 since swap code is just not ready.

Christian, this should probably go through your tree.

I tested it on a LBS device where the logical block size is 16 KiB on
x86_64 and confirm that while mkswap would swapon would be rejected.

[0] https://lore.kernel.org/all/20240627000924.2074949-1-mcgrof@kernel.org/T/#u

 mm/swapfile.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/mm/swapfile.c b/mm/swapfile.c
index 2eff8b51a945..c24ec16dfc7a 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -3322,6 +3322,11 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
 		goto bad_swap_unlock_inode;
 	}
 
+	if (mapping_min_folio_order(mapping) > 0) {
+		error = -EINVAL;
+		goto bad_swap_unlock_inode;
+	}
+
 	/*
 	 * Read the swap header.
 	 */
-- 
2.47.2


             reply	other threads:[~2025-05-02 23:13 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-02 23:13 Luis Chamberlain [this message]
2025-05-05  6:25 ` [PATCH] swapfile: disable swapon for bs > ps devices Christoph Hellwig
2025-05-05 14:40   ` Matthew Wilcox
2025-05-05 14:21 ` Christian Brauner
2025-05-05 19:35   ` [PATCH v2] " Luis Chamberlain
2025-05-06  8:46     ` Christian Brauner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250502231309.766016-1-mcgrof@kernel.org \
    --to=mcgrof@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=da.gomez@samsung.com \
    --cc=gost.dev@samsung.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=p.raghav@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).