From 1446e6a896e2255108d1a4eaae2637796abe7c3b Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Fri, 31 Jan 2020 10:22:21 +0100 Subject: [PATCH] procfs: add check_kernel_release adapted from Wolfgan's patch[0] for a pve-container feature check, as this is a general check let's move it here. [0]: https://pve.proxmox.com/pipermail/pve-devel/2020-January/041477.html Signed-off-by: Thomas Lamprecht --- src/PVE/ProcFSTools.pm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/PVE/ProcFSTools.pm b/src/PVE/ProcFSTools.pm index d170ef5..7f905f4 100644 --- a/src/PVE/ProcFSTools.pm +++ b/src/PVE/ProcFSTools.pm @@ -97,6 +97,23 @@ sub kernel_version { return (0, 0, 0, '', ''); } +# Check if the kernel is at least $major.$minor. Return either just a boolean, +# or a boolean and the kernel version's major.minor string from /proc/version +sub check_kernel_release { + my ($major, $minor) = @_; + + my ($k_major, $k_minor) = kernel_version(); + + my $ok; + if (defined($minor)) { + $ok = $k_major > $major || ($k_major == $major && $k_minor >= $minor); + } else { + $ok = $k_major >= $major; + } + + return wantarray ? ($ok, "$k_major.$k_minor") : $ok; +} + sub read_loadavg { my $line = PVE::Tools::file_read_firstline('/proc/loadavg'); -- 2.39.2