zram-swap: use new extra_command wrapper
[openwrt/staging/jow.git] / package / system / zram-swap / files / zram.init
index 42c084855ab68bde04bfef7ff81ab31379be913a..c6b7ae89c2984390b3b9859ef9f14d8ba004eb85 100755 (executable)
@@ -2,9 +2,8 @@
 
 START=15
 
-EXTRA_COMMANDS="compact status"
-EXTRA_HELP="        compact trigger compaction for all Z-RAM swap dev's
-        status  print out status information & statistics about Z-RAM swap devices"
+extra_command "compact" "Trigger compaction for all Z-RAM swap dev's"
+extra_command "status" "Print out information & statistics about Z-RAM swap devices"
 
 ram_getsize()
 {
@@ -35,18 +34,18 @@ zram_applicable()
                return 1
        }
 
-       command -v mkswap >/dev/null || {
-               logger -s -t zram_applicable -p daemon.err "[ERROR] 'mkswap' not installed"
+       [ -x /sbin/mkswap ] || {
+               logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox mkswap' not installed"
                return 1
        }
 
-       command -v swapon >/dev/null || {
-               logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapon' not installed"
+       [ -x /sbin/swapon ] || {
+               logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapon' not installed"
                return 1
        }
 
-       command -v swapoff >/dev/null || {
-               logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapoff' not installed"
+       [ -x /sbin/swapoff ] || {
+               logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapoff' not installed"
                return 1
        }
 }
@@ -85,8 +84,9 @@ zram_comp_algo()
        local dev="$1"
        local zram_comp_algo="$( uci -q get system.@system[0].zram_comp_algo )"
 
-       if [ -z "$zram_comp_algo" ] || [ ! -e /sys/block/$( basename $dev )/comp_algorithm ]; then
-               return 0
+       if [ -z "$zram_comp_algo" ]; then
+               # lzo-rle fails on small RAM devices, default to lzo, which is always available
+               zram_comp_algo="lzo"
        fi
 
        if [ $(grep -c "$zram_comp_algo" /sys/block/$( basename $dev )/comp_algorithm) -ne 0 ]; then
@@ -181,8 +181,8 @@ start()
        zram_comp_algo "$zram_dev"
        zram_comp_streams "$zram_dev"
        echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize"
-       mkswap "$zram_dev"
-       swapon -d $zram_priority "$zram_dev"
+       /sbin/mkswap "$zram_dev"
+       /sbin/swapon -d $zram_priority "$zram_dev"
 }
 
 stop()
@@ -191,7 +191,7 @@ stop()
 
        for zram_dev in $( grep zram /proc/swaps |awk '{print $1}' ); do {
                logger -s -t zram_stop -p daemon.debug "deactivate swap $zram_dev"
-               swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming memory back"
+               /sbin/swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming memory back"
                local dev_index="$( echo $zram_dev | grep -o "[0-9]*$" )"
                if [ $dev_index -ne 0 ]; then
                        logger -s -t zram_stop -p daemon.debug "removing zram $zram_dev"