diff options
author | Karel Zak | 2016-09-21 15:08:24 +0200 |
---|---|---|
committer | Karel Zak | 2016-09-23 13:21:02 +0200 |
commit | a1c95432f8e73fee9b08f9869a89f219cf2d66f8 (patch) | |
tree | 075bfeccda6eba2c6c43f31609028586b91b41a8 /misc-utils/findmnt-verify.c | |
parent | findmnt: (verify) add options verification (diff) | |
download | kernel-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.c | 32 |
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; } |