diff --git a/util-linux/Config.in b/util-linux/Config.in
index 5f5adc0..7cf1757 100644
--- a/util-linux/Config.in
+++ b/util-linux/Config.in
@@ -689,6 +689,7 @@
 	help
 	  This allows for specifying a device by label or uuid, rather than by
 	  name. This feature utilizes the same functionality as blkid/findfs.
+	  This also enables label or uuid support for swapon.
 
 config FEATURE_MOUNT_NFS
 	bool "Support mounting NFS file systems"
diff --git a/util-linux/findfs.c b/util-linux/findfs.c
index 5b64399..1e9c687 100644
--- a/util-linux/findfs.c
+++ b/util-linux/findfs.c
@@ -12,26 +12,27 @@
 #include "volume_id.h"
 
 int findfs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int findfs_main(int argc, char **argv)
+int findfs_main(int argc UNUSED_PARAM, char **argv)
 {
-	char *tmp = NULL;
+	char *dev = *++argv;
 
-	if (argc != 2)
+	if (!dev)
 		bb_show_usage();
 
-	if (!strncmp(argv[1], "LABEL=", 6))
-		tmp = get_devname_from_label(argv[1] + 6);
-	else if (!strncmp(argv[1], "UUID=", 5))
-		tmp = get_devname_from_uuid(argv[1] + 5);
-	else if (!strncmp(argv[1], "/dev/", 5)) {
-		/* Just pass a device name right through.  This might aid in some scripts
-		being able to call this unconditionally */
-		tmp = argv[1];
-	} else
-		bb_show_usage();
+	if (strncmp(dev, "/dev/", 5) == 0) {
+		/* Just pass any /dev/xxx name right through.
+		 * This might aid in some scripts being able
+		 * to call this unconditionally */
+		dev = NULL;
+	} else {
+		/* Otherwise, handle LABEL=xxx and UUID=xxx,
+		 * fail on anything else */
+		if (!resolve_mount_spec(argv))
+			bb_show_usage();
+	}
 
-	if (tmp) {
-		puts(tmp);
+	if (*argv != dev) {
+		puts(*argv);
 		return 0;
 	}
 	return 1;
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 478dc24..9f465f1 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -50,7 +50,9 @@
 #include "libbb.h"
 
 #if ENABLE_FEATURE_MOUNT_LABEL
-#include "volume_id.h"
+# include "volume_id.h"
+#else
+# define resolve_mount_spec(fsname) ((void)0)
 #endif
 
 // Needed for nfs support only
@@ -290,23 +292,6 @@
 #define verbose_mount(...) mount(__VA_ARGS__)
 #endif
 
-#if ENABLE_FEATURE_MOUNT_LABEL
-static void resolve_mount_spec(char **fsname)
-{
-	char *tmp = NULL;
-
-	if (!strncmp(*fsname, "UUID=", 5))
-		tmp = get_devname_from_uuid(*fsname + 5);
-	else if (!strncmp(*fsname, "LABEL=", 6))
-		tmp = get_devname_from_label(*fsname + 6);
-
-	if (tmp)
-		*fsname = tmp;
-}
-#else
-#define resolve_mount_spec(fsname) ((void)0)
-#endif
-
 // Append mount options to string
 static void append_mount_options(char **oldopts, const char *newopts)
 {
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c
index 863f773..33ad00a 100644
--- a/util-linux/swaponoff.c
+++ b/util-linux/swaponoff.c
@@ -11,6 +11,12 @@
 #include <mntent.h>
 #include <sys/swap.h>
 
+#if ENABLE_FEATURE_MOUNT_LABEL
+# include "volume_id.h"
+#else
+# define resolve_mount_spec(fsname) ((void)0)
+#endif
+
 #if ENABLE_FEATURE_SWAPON_PRI
 struct globals {
 	int flags;
@@ -26,6 +32,7 @@
 	int status;
 	struct stat st;
 
+	resolve_mount_spec(&device);
 	xstat(device, &st);
 
 #if ENABLE_DESKTOP
diff --git a/util-linux/volume_id/get_devname.c b/util-linux/volume_id/get_devname.c
index 0686a07..9b5283f 100644
--- a/util-linux/volume_id/get_devname.c
+++ b/util-linux/volume_id/get_devname.c
@@ -260,3 +260,20 @@
 	}
 	return NULL;
 }
+
+int resolve_mount_spec(char **fsname)
+{
+	char *tmp = *fsname;
+
+	if (strncmp(*fsname, "UUID=", 5) == 0)
+		tmp = get_devname_from_uuid(*fsname + 5);
+	else if (strncmp(*fsname, "LABEL=", 6) == 0)
+		tmp = get_devname_from_label(*fsname + 6);
+
+	if (tmp == *fsname)
+		return 0; /* no UUID= or LABEL= prefix found */
+
+	if (tmp)
+		*fsname = tmp;
+	return 1;
+}
