zram-swap: robustify mkswap/swapon/swapoff invocation

Instead of assuming /sbin contains the correct BusyBox symlinks, directly invoke
the busybox executable. The required utilities are guaranteed to be present,
since the zram-swap package selects them. Additionally, don't assume busybox
resides in /bin, rely on PATH to find it.

While at it, update the copyright year, use SPDX and switch to AUTORELEASE.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
This commit is contained in:
Rui Salvaterra 2021-06-24 20:05:21 +01:00 committed by Paul Spooren
parent 1818b038d7
commit 18c24a29f9
2 changed files with 13 additions and 36 deletions

View File

@ -1,14 +1,11 @@
# SPDX-License-Identifier: GPL-2.0-only
# #
# Copyright (C) 2013 OpenWrt.org # Copyright (C) 2013-2021 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=zram-swap PKG_NAME:=zram-swap
PKG_RELEASE:=8 PKG_RELEASE:=$(AUTORELEASE)
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

View File

@ -25,31 +25,6 @@ zram_getsize() # in megabytes
fi fi
} }
zram_applicable()
{
local zram_dev="$1"
[ -e "$zram_dev" ] || {
logger -s -t zram_applicable -p daemon.crit "[ERROR] device '$zram_dev' not found"
return 1
}
[ -x /sbin/mkswap ] || {
logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox mkswap' not installed"
return 1
}
[ -x /sbin/swapon ] || {
logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapon' not installed"
return 1
}
[ -x /sbin/swapoff ] || {
logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapoff' not installed"
return 1
}
}
zram_dev() zram_dev()
{ {
local idx="$1" local idx="$1"
@ -160,9 +135,14 @@ start()
return 1 return 1
fi fi
local zram_size="$( zram_getsize )"
local zram_dev="$( zram_getdev )" local zram_dev="$( zram_getdev )"
zram_applicable "$zram_dev" || return 1
[ -e "$zram_dev" ] || {
logger -s -t zram_start -p daemon.crit "[ERROR] device '$zram_dev' not found"
return 1
}
local zram_size="$( zram_getsize )"
local zram_priority="$( uci -q get system.@system[0].zram_priority )" local zram_priority="$( uci -q get system.@system[0].zram_priority )"
zram_priority=${zram_priority:+-p $zram_priority} zram_priority=${zram_priority:+-p $zram_priority}
@ -171,8 +151,8 @@ start()
zram_reset "$zram_dev" "enforcing defaults" zram_reset "$zram_dev" "enforcing defaults"
zram_comp_algo "$zram_dev" zram_comp_algo "$zram_dev"
echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize" echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize"
/sbin/mkswap "$zram_dev" busybox mkswap "$zram_dev"
/sbin/swapon -d $zram_priority "$zram_dev" busybox swapon -d $zram_priority "$zram_dev"
} }
stop() stop()
@ -181,7 +161,7 @@ stop()
for zram_dev in $( grep zram /proc/swaps |awk '{print $1}' ); do { for zram_dev in $( grep zram /proc/swaps |awk '{print $1}' ); do {
logger -s -t zram_stop -p daemon.debug "deactivate swap $zram_dev" logger -s -t zram_stop -p daemon.debug "deactivate swap $zram_dev"
/sbin/swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming memory back" busybox swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming memory back"
local dev_index="$( echo $zram_dev | grep -o "[0-9]*$" )" local dev_index="$( echo $zram_dev | grep -o "[0-9]*$" )"
if [ $dev_index -ne 0 ]; then if [ $dev_index -ne 0 ]; then
logger -s -t zram_stop -p daemon.debug "removing zram $zram_dev" logger -s -t zram_stop -p daemon.debug "removing zram $zram_dev"