summaryrefslogtreecommitdiffstats
path: root/misc-utils/findmnt-verify.c
diff options
context:
space:
mode:
authorKarel Zak2016-09-21 15:08:24 +0200
committerKarel Zak2016-09-23 13:21:02 +0200
commita1c95432f8e73fee9b08f9869a89f219cf2d66f8 (patch)
tree075bfeccda6eba2c6c43f31609028586b91b41a8 /misc-utils/findmnt-verify.c
parentfindmnt: (verify) add options verification (diff)
downloadkernel-qcow2-util-linux-a1c95432f8e73fee9b08f9869a89f219cf2d66f8.tar.gz
kernel-qcow2-util-linux-a1c95432f8e73fee9b08f9869a89f219cf2d66f8.tar.xz
kernel-qcow2-util-linux-a1c95432f8e73fee9b08f9869a89f219cf2d66f8.zip
findmnt: (verify) add swaparea verification
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'misc-utils/findmnt-verify.c')
-rw-r--r--misc-utils/findmnt-verify.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/misc-utils/findmnt-verify.c b/misc-utils/findmnt-verify.c
index 52bf8518b..1cdd9697b 100644
--- a/misc-utils/findmnt-verify.c
+++ b/misc-utils/findmnt-verify.c
@@ -235,17 +235,45 @@ static int verify_options(struct verify_context *vfy)
return 0;
}
+static int verify_swaparea(struct verify_context *vfy)
+{
+ char *arg;
+ size_t argsz = 0;
+
+ if (mnt_fs_get_option(vfy->fs, "discard", &arg, &argsz) == 0
+ && arg
+ && strncmp(arg, "once", argsz) != 0
+ && strncmp(arg, "pages", argsz) != 0)
+ verify_err(vfy, _("unsupported swaparea discard policy: %s"), arg);
+
+ if (mnt_fs_get_option(vfy->fs, "pri", &arg, &argsz) == 0 && arg) {
+ char *p = arg;
+ if (*p == '-')
+ p++;
+ for (; p < arg + argsz; p++) {
+ if (!isdigit((unsigned char) *p)) {
+ verify_err(vfy, _("failed to parse swaparea priority option"));
+ break;
+ }
+ }
+ }
+
+ return 0;
+}
+
static int verify_filesystem(struct verify_context *vfy)
{
int rc = 0;
- if (!mnt_fs_is_swaparea(vfy->fs)) {
+ if (mnt_fs_is_swaparea(vfy->fs))
+ rc = verify_swaparea(vfy);
+ else {
rc = verify_target(vfy);
if (!rc)
rc = verify_options(vfy);
}
if (!rc)
- verify_source(vfy);
+ rc = verify_source(vfy);
return rc;
}