summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--disk-utils/Makemodule.am9
-rw-r--r--disk-utils/swaplabel.c10
-rw-r--r--include/Makemodule.am2
-rw-r--r--include/swapprober.h9
-rw-r--r--lib/swapprober.c48
-rw-r--r--sys-utils/Makemodule.am12
-rw-r--r--sys-utils/swapon-common.c47
-rw-r--r--sys-utils/swapon-common.h (renamed from include/swapon-common.h)3
-rw-r--r--sys-utils/swapon.c6
9 files changed, 82 insertions, 64 deletions
diff --git a/disk-utils/Makemodule.am b/disk-utils/Makemodule.am
index 04118c73b..3c4f8d78b 100644
--- a/disk-utils/Makemodule.am
+++ b/disk-utils/Makemodule.am
@@ -65,10 +65,13 @@ endif # BUILD_MKSWAP
if BUILD_SWAPLABEL
sbin_PROGRAMS += swaplabel
dist_man_MANS += disk-utils/swaplabel.8
-swaplabel_SOURCES = disk-utils/swaplabel.c sys-utils/swapon-common.c
+swaplabel_SOURCES = \
+ disk-utils/swaplabel.c \
+ lib/swapprober.c \
+ include/swapprober.h
-swaplabel_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) -I$(ul_libmount_incdir)
-swaplabel_LDADD = $(LDADD) libblkid.la libmount.la libcommon.la
+swaplabel_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
+swaplabel_LDADD = $(LDADD) libblkid.la libcommon.la
if BUILD_LIBUUID
swaplabel_LDADD += libuuid.la
diff --git a/disk-utils/swaplabel.c b/disk-utils/swaplabel.c
index a7cccc4f8..a7498a4f1 100644
--- a/disk-utils/swaplabel.c
+++ b/disk-utils/swaplabel.c
@@ -18,7 +18,6 @@
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
-#include <blkid.h>
#include <getopt.h>
#ifdef HAVE_LIBUUID
@@ -26,12 +25,13 @@
#endif
#include "c.h"
-#include "closestream.h"
+#include "nls.h"
#include "all-io.h"
-#include "swapheader.h"
-#include "swapon-common.h"
#include "strutils.h"
-#include "nls.h"
+#include "closestream.h"
+
+#include "swapheader.h"
+#include "swapprober.h"
#define SWAP_UUID_OFFSET (offsetof(struct swap_header_v1_2, uuid))
#define SWAP_LABEL_OFFSET (offsetof(struct swap_header_v1_2, volume_name))
diff --git a/include/Makemodule.am b/include/Makemodule.am
index dd5c3f58c..bb8aac58b 100644
--- a/include/Makemodule.am
+++ b/include/Makemodule.am
@@ -41,7 +41,7 @@ dist_noinst_HEADERS += \
include/rpmatch.h \
include/setproctitle.h \
include/strutils.h \
- include/swapon-common.h \
+ include/swapprober.h \
include/swapheader.h \
include/sysfs.h \
include/timer.h \
diff --git a/include/swapprober.h b/include/swapprober.h
new file mode 100644
index 000000000..510770045
--- /dev/null
+++ b/include/swapprober.h
@@ -0,0 +1,9 @@
+#ifndef UTIL_LINUX_SWAP_PROBER_H
+#define UTIL_LINUX_SWAP_PROBER_H
+
+#include <blkid.h>
+
+blkid_probe get_swap_prober(const char *devname);
+
+#endif /* UTIL_LINUX_SWAP_PROBER_H */
+
diff --git a/lib/swapprober.c b/lib/swapprober.c
new file mode 100644
index 000000000..deb754b8a
--- /dev/null
+++ b/lib/swapprober.c
@@ -0,0 +1,48 @@
+
+#include "c.h"
+#include "nls.h"
+
+#include "swapprober.h"
+
+blkid_probe get_swap_prober(const char *devname)
+{
+ blkid_probe pr;
+ int rc;
+ const char *version = NULL;
+ char *swap_filter[] = { "swap", NULL };
+
+ pr = blkid_new_probe_from_filename(devname);
+ if (!pr) {
+ warn(_("%s: unable to probe device"), devname);
+ return NULL;
+ }
+
+ blkid_probe_enable_superblocks(pr, TRUE);
+ blkid_probe_set_superblocks_flags(pr,
+ BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID |
+ BLKID_SUBLKS_VERSION);
+
+ blkid_probe_filter_superblocks_type(pr, BLKID_FLTR_ONLYIN, swap_filter);
+
+ rc = blkid_do_safeprobe(pr);
+ if (rc == -1)
+ warn(_("%s: unable to probe device"), devname);
+ else if (rc == -2)
+ warnx(_("%s: ambivalent probing result, use wipefs(8)"), devname);
+ else if (rc == 1)
+ warnx(_("%s: not a valid swap partition"), devname);
+
+ if (rc == 0) {
+ /* Only the SWAPSPACE2 is supported. */
+ if (blkid_probe_lookup_value(pr, "VERSION", &version, NULL) == 0
+ && version
+ && strcmp(version, stringify_value(SWAP_VERSION)))
+ warnx(_("%s: unsupported swap version '%s'"),
+ devname, version);
+ else
+ return pr;
+ }
+
+ blkid_free_probe(pr);
+ return NULL;
+}
diff --git a/sys-utils/Makemodule.am b/sys-utils/Makemodule.am
index 058bb62d4..b75d5e005 100644
--- a/sys-utils/Makemodule.am
+++ b/sys-utils/Makemodule.am
@@ -262,7 +262,10 @@ dist_man_MANS += \
swapon_SOURCES = \
sys-utils/swapon.c \
- sys-utils/swapon-common.c
+ sys-utils/swapon-common.c \
+ sys-utils/swapon-common.h \
+ lib/swapprober.c \
+ include/swapprober.h
swapon_CFLAGS = $(AM_CFLAGS) \
-I$(ul_libblkid_incdir) \
-I$(ul_libmount_incdir) \
@@ -273,8 +276,11 @@ swapon_LDADD = $(LDADD) \
libmount.la \
libsmartcols.la
-swapoff_SOURCES = sys-utils/swapoff.c sys-utils/swapon-common.c
-swapoff_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir) -I$(ul_libblkid_incdir)
+swapoff_SOURCES = \
+ sys-utils/swapoff.c \
+ sys-utils/swapon-common.c \
+ sys-utils/swapon-common.h
+swapoff_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir)
swapoff_LDADD = $(LDADD) libmount.la
endif
diff --git a/sys-utils/swapon-common.c b/sys-utils/swapon-common.c
index 203d5c4d0..8f7788cb0 100644
--- a/sys-utils/swapon-common.c
+++ b/sys-utils/swapon-common.c
@@ -1,11 +1,10 @@
-#include <blkid.h>
#include "c.h"
#include "nls.h"
-#include "swapheader.h"
-#include "swapon-common.h"
#include "xalloc.h"
+#include "swapon-common.h"
+
/*
* content of /proc/swaps and /etc/fstab
*/
@@ -106,45 +105,3 @@ size_t numof_uuids(void)
return ulct;
}
-blkid_probe get_swap_prober(const char *devname)
-{
- blkid_probe pr;
- int rc;
- const char *version = NULL;
- char *swap_filter[] = { "swap", NULL };
-
- pr = blkid_new_probe_from_filename(devname);
- if (!pr) {
- warn(_("%s: unable to probe device"), devname);
- return NULL;
- }
-
- blkid_probe_enable_superblocks(pr, TRUE);
- blkid_probe_set_superblocks_flags(pr,
- BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID |
- BLKID_SUBLKS_VERSION);
-
- blkid_probe_filter_superblocks_type(pr, BLKID_FLTR_ONLYIN, swap_filter);
-
- rc = blkid_do_safeprobe(pr);
- if (rc == -1)
- warn(_("%s: unable to probe device"), devname);
- else if (rc == -2)
- warnx(_("%s: ambivalent probing result, use wipefs(8)"), devname);
- else if (rc == 1)
- warnx(_("%s: not a valid swap partition"), devname);
-
- if (rc == 0) {
- /* Only the SWAPSPACE2 is supported. */
- if (blkid_probe_lookup_value(pr, "VERSION", &version, NULL) == 0
- && version
- && strcmp(version, stringify_value(SWAP_VERSION)))
- warnx(_("%s: unsupported swap version '%s'"),
- devname, version);
- else
- return pr;
- }
-
- blkid_free_probe(pr);
- return NULL;
-}
diff --git a/include/swapon-common.h b/sys-utils/swapon-common.h
index da58e199d..d1b679f2c 100644
--- a/include/swapon-common.h
+++ b/sys-utils/swapon-common.h
@@ -1,7 +1,6 @@
#ifndef UTIL_LINUX_SWAPON_COMMON_H
#define UTIL_LINUX_SWAPON_COMMON_H
-#include <blkid.h>
#include <libmount.h>
extern struct libmnt_cache *mntcache;
@@ -23,6 +22,4 @@ extern void add_uuid(const char *uuid);
extern const char *get_uuid(size_t i);
extern size_t numof_uuids(void);
-blkid_probe get_swap_prober(const char *devname);
-
#endif /* UTIL_LINUX_SWAPON_COMMON_H */
diff --git a/sys-utils/swapon.c b/sys-utils/swapon.c
index ea5fdb28a..976f87e40 100644
--- a/sys-utils/swapon.c
+++ b/sys-utils/swapon.c
@@ -12,9 +12,6 @@
#include <stdint.h>
#include <ctype.h>
-#include <blkid.h>
-
-#include <libmount.h>
#include <libsmartcols.h>
#include "c.h"
@@ -23,11 +20,12 @@
#include "blkdev.h"
#include "pathnames.h"
#include "xalloc.h"
+#include "strutils.h"
#include "closestream.h"
#include "swapheader.h"
+#include "swapprober.h"
#include "swapon-common.h"
-#include "strutils.h"
#define PATH_MKSWAP "/sbin/mkswap"