summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis Chamberlain <mcgrof@kernel.org>2025-05-05 12:35:19 -0700
committerChristian Brauner <brauner@kernel.org>2025-05-06 10:46:19 +0200
commit6ba0982c3235a047c953bf73a7b014af7840c4de (patch)
tree9176ff9e556cb1e4ddb5b2830b680cce5b3557e5
parentd9ec73301099ec5975505e1c3effbe768bab9490 (diff)
swapfile: disable swapon for bs > ps devices
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. With this we at least now put a stop gap of its use, until the swap subsystem completes its major overhaul: 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 failed: Invalid argument Reviewed-by: Davidlohr Bueso <dave@stgolabs.net> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> Link: https://lore.kernel.org/aBkS926thy9zvdZb@bombadil.infradead.org Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--mm/swapfile.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 2eff8b51a945..74a6c580b00d 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -3323,6 +3323,15 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
}
/*
+ * The swap subsystem needs a major overhaul to support this.
+ * It doesn't work yet so just disable it for now.
+ */
+ if (mapping_min_folio_order(mapping) > 0) {
+ error = -EINVAL;
+ goto bad_swap_unlock_inode;
+ }
+
+ /*
* Read the swap header.
*/
if (!mapping->a_ops->read_folio) {