mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-29 09:32:34 +00:00
uvol: update to latest version
Fixes: WIFI-368 Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
@@ -1,19 +1,19 @@
|
||||
From 08809a60a8f2c065a38c24fcdbd69b939e5c29d9 Mon Sep 17 00:00:00 2001
|
||||
From 813b09542fd13428d432e47eecd7191d1b3067fd Mon Sep 17 00:00:00 2001
|
||||
From: John Crispin <john@phrozen.org>
|
||||
Date: Fri, 13 Aug 2021 08:46:57 +0200
|
||||
Subject: [PATCH 24/27] uvol: backport package
|
||||
Subject: [PATCH 01/83] uvol: backport package
|
||||
|
||||
Signed-off-by: John Crispin <john@phrozen.org>
|
||||
---
|
||||
package/system/uvol/Makefile | 77 ++++
|
||||
package/system/uvol/files/autopart.defaults | 127 ++++++
|
||||
package/system/uvol/files/common.sh | 83 ++++
|
||||
package/system/uvol/files/lvm.sh | 435 ++++++++++++++++++++
|
||||
package/system/uvol/files/ubi.sh | 337 +++++++++++++++
|
||||
package/system/uvol/files/lvm.sh | 459 ++++++++++++++++++++
|
||||
package/system/uvol/files/ubi.sh | 358 +++++++++++++++
|
||||
package/system/uvol/files/uvol | 52 +++
|
||||
package/system/uvol/files/uvol.defaults | 3 +
|
||||
package/system/uvol/files/uvol.init | 23 ++
|
||||
8 files changed, 1137 insertions(+)
|
||||
package/system/uvol/files/uvol.defaults | 17 +
|
||||
package/system/uvol/files/uvol.init | 23 +
|
||||
8 files changed, 1196 insertions(+)
|
||||
create mode 100644 package/system/uvol/Makefile
|
||||
create mode 100644 package/system/uvol/files/autopart.defaults
|
||||
create mode 100644 package/system/uvol/files/common.sh
|
||||
@@ -25,14 +25,14 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
diff --git a/package/system/uvol/Makefile b/package/system/uvol/Makefile
|
||||
new file mode 100644
|
||||
index 0000000000..bd70410c5e
|
||||
index 0000000000..6583e6e756
|
||||
--- /dev/null
|
||||
+++ b/package/system/uvol/Makefile
|
||||
@@ -0,0 +1,77 @@
|
||||
+include $(TOPDIR)/rules.mk
|
||||
+
|
||||
+PKG_NAME:=uvol
|
||||
+PKG_VERSION:=0.4
|
||||
+PKG_VERSION:=0.6
|
||||
+PKG_RELEASE:=$(AUTORELEASE)
|
||||
+
|
||||
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
|
||||
@@ -45,7 +45,7 @@ index 0000000000..bd70410c5e
|
||||
+ CATEGORY:=Utilities
|
||||
+ SUBMENU:=Disc
|
||||
+ TITLE:=Automatically initialize LVM partition
|
||||
+ DEPENDS:=+partx-utils +sfdisk
|
||||
+ DEPENDS:=+lvm2 +partx-utils +sfdisk
|
||||
+ PKGARCH=all
|
||||
+endef
|
||||
+
|
||||
@@ -101,7 +101,7 @@ index 0000000000..bd70410c5e
|
||||
+ $(INSTALL_BIN) ./files/ubi.sh $(1)/usr/libexec/uvol/20-ubi.sh
|
||||
+ $(INSTALL_BIN) ./files/lvm.sh $(1)/usr/libexec/uvol/50-lvm.sh
|
||||
+ $(INSTALL_BIN) ./files/uvol $(1)/usr/sbin
|
||||
+ $(INSTALL_BIN) ./files/uvol.defaults $(1)/etc/uci-defaults/90-uvol-restore-uci
|
||||
+ $(INSTALL_BIN) ./files/uvol.defaults $(1)/etc/uci-defaults/90-uvol-init
|
||||
+endef
|
||||
+
|
||||
+$(eval $(call BuildPackage,autopart))
|
||||
@@ -241,7 +241,7 @@ index 0000000000..870cd44156
|
||||
+exit 0
|
||||
diff --git a/package/system/uvol/files/common.sh b/package/system/uvol/files/common.sh
|
||||
new file mode 100644
|
||||
index 0000000000..e3b554e180
|
||||
index 0000000000..8306477720
|
||||
--- /dev/null
|
||||
+++ b/package/system/uvol/files/common.sh
|
||||
@@ -0,0 +1,83 @@
|
||||
@@ -270,8 +270,8 @@ index 0000000000..e3b554e180
|
||||
+ uuid="${uuid:5}"
|
||||
+
|
||||
+ case "$uciname" in
|
||||
+ "_uxc")
|
||||
+ target="/var/state/uxc"
|
||||
+ "_meta")
|
||||
+ target="/var/run/uvol/.meta"
|
||||
+ ;;
|
||||
+ "_"*)
|
||||
+ return 1
|
||||
@@ -297,7 +297,7 @@ index 0000000000..e3b554e180
|
||||
+ local volname="$1"
|
||||
+ local uciname
|
||||
+
|
||||
+ uciname="${volname//-/_}"
|
||||
+ uciname="${volname//[-.]/_}"
|
||||
+ uciname="${uciname//[!([:alnum:]_)]}"
|
||||
+ if [ -e "${UCI_SPOOLDIR}/add-$1" ]; then
|
||||
+ rm "${UCI_SPOOLDIR}/add-$1"
|
||||
@@ -330,10 +330,10 @@ index 0000000000..e3b554e180
|
||||
+}
|
||||
diff --git a/package/system/uvol/files/lvm.sh b/package/system/uvol/files/lvm.sh
|
||||
new file mode 100644
|
||||
index 0000000000..95281194ba
|
||||
index 0000000000..c7e93f13f2
|
||||
--- /dev/null
|
||||
+++ b/package/system/uvol/files/lvm.sh
|
||||
@@ -0,0 +1,435 @@
|
||||
@@ -0,0 +1,459 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+cmd="$1"
|
||||
@@ -398,8 +398,12 @@ index 0000000000..95281194ba
|
||||
+
|
||||
+vg_name=
|
||||
+exportpv() {
|
||||
+ local reports rep pv pvs
|
||||
+ vg_name=
|
||||
+ config_load fstab
|
||||
+ local uvolsect="$(config_foreach echo uvol)"
|
||||
+ [ -n "$uvolsect" ] && config_get vg_name "$uvolsect" vg_name
|
||||
+ [ -n "$vg_name" ] && return
|
||||
+ local reports rep pv pvs
|
||||
+ json_init
|
||||
+ json_load "$(pvs -o vg_name -S "pv_name=~^/dev/$rootdev.*\$")"
|
||||
+ json_select report
|
||||
@@ -488,7 +492,7 @@ index 0000000000..95281194ba
|
||||
+ for dms in /sys/devices/virtual/block/dm-* ; do
|
||||
+ [ "$dms" = "/sys/devices/virtual/block/dm-*" ] && break
|
||||
+ read -r dm_name < "$dms/dm/name"
|
||||
+ [ $(basename "$lv_dm_path") = "$dm_name" ] && echo "$(basename "$dms")"
|
||||
+ [ "$(basename "$lv_dm_path")" = "$dm_name" ] && basename "$dms"
|
||||
+ done
|
||||
+}
|
||||
+
|
||||
@@ -534,7 +538,7 @@ index 0000000000..95281194ba
|
||||
+ *)
|
||||
+ [ "$lv_active" = "active" ] || return 0
|
||||
+ devname="$(getdev "$1")"
|
||||
+ [ "$devname" ] && /sbin/block umount "$devname"
|
||||
+ [ "$devname" ] && umount "/dev/$devname"
|
||||
+ lvm_cmd lvchange -a n "$lv_full_name"
|
||||
+ lvm_cmd lvchange -k y "$lv_full_name" || return $?
|
||||
+ return 0
|
||||
@@ -631,7 +635,12 @@ index 0000000000..95281194ba
|
||||
+}
|
||||
+
|
||||
+listvols() {
|
||||
+ local reports rep lv lvs lv_name lv_size lv_mode volname
|
||||
+ local reports rep lv lvs lv_name lv_size lv_mode volname json_output json_notfirst
|
||||
+ if [ "$1" = "-j" ]; then
|
||||
+ json_output=1
|
||||
+ echo "["
|
||||
+ shift
|
||||
+ fi
|
||||
+ volname=${1:-.*}
|
||||
+ json_init
|
||||
+ json_load "$(lvs -o lv_name,lv_size -S "lv_name=~^[rw][owp]_$volname\$ && vg_name=$vg_name")"
|
||||
@@ -647,17 +656,32 @@ index 0000000000..95281194ba
|
||||
+ lv_mode="${lv_name:0:2}"
|
||||
+ lv_name="${lv_name:3}"
|
||||
+ lv_size=${lv_size%B}
|
||||
+ echo "$lv_name $lv_mode $lv_size"
|
||||
+ [ "${lv_name:0:1}" = "." ] && continue
|
||||
+ if [ "$json_output" = "1" ]; then
|
||||
+ [ "$json_notfirst" = "1" ] && echo ","
|
||||
+ echo -e "\t{"
|
||||
+ echo -e "\t\t\"name\": \"$lv_name\","
|
||||
+ echo -e "\t\t\"mode\": \"$lv_mode\","
|
||||
+ echo -e "\t\t\"size\": $lv_size"
|
||||
+ echo -n -e "\t}"
|
||||
+ json_notfirst=1
|
||||
+ else
|
||||
+ echo "$lv_name $lv_mode $lv_size"
|
||||
+ fi
|
||||
+ json_select ..
|
||||
+ done
|
||||
+ json_select ..
|
||||
+ break
|
||||
+ done
|
||||
+
|
||||
+ if [ "$json_output" = "1" ]; then
|
||||
+ [ "$json_notfirst" = "1" ] && echo
|
||||
+ echo "]"
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+
|
||||
+detect() {
|
||||
+ local reports rep lv lvs lv_name lv_full_name lv_mode volname devname lv_skip_activation
|
||||
+ local reports rep lv lvs lv_name lv_full_name lv_mode volname devname
|
||||
+ local temp_up=""
|
||||
+
|
||||
+ json_init
|
||||
@@ -771,10 +795,10 @@ index 0000000000..95281194ba
|
||||
+esac
|
||||
diff --git a/package/system/uvol/files/ubi.sh b/package/system/uvol/files/ubi.sh
|
||||
new file mode 100644
|
||||
index 0000000000..b0b363d7ed
|
||||
index 0000000000..7637fba682
|
||||
--- /dev/null
|
||||
+++ b/package/system/uvol/files/ubi.sh
|
||||
@@ -0,0 +1,337 @@
|
||||
@@ -0,0 +1,358 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+cmd="$1"
|
||||
@@ -945,12 +969,12 @@ index 0000000000..b0b363d7ed
|
||||
+ vol_is_mode "$voldev" wo && return 22
|
||||
+ vol_is_mode "$voldev" wp && return 16
|
||||
+ if vol_is_mode "$voldev" ro; then
|
||||
+ /sbin/block umount "ubiblock${voldev:3}"
|
||||
+ grep -q "^/dev/ubiblock${voldev:3}" /proc/self/mounts && umount "/dev/ubiblock${voldev:3}"
|
||||
+ ubiblock --remove "/dev/$voldev"
|
||||
+ ubirename "/dev/$ubidev" "uvol-ro-$1" "uvol-rd-$1" || return $?
|
||||
+ return 0
|
||||
+ elif vol_is_mode "$voldev" rw; then
|
||||
+ /sbin/block umount "$voldev"
|
||||
+ umount "/dev/$voldev"
|
||||
+ ubirename "/dev/$ubidev" "uvol-rw-$1" "uvol-wd-$1" || return $?
|
||||
+ block_hotplug remove "$voldev"
|
||||
+ return 0
|
||||
@@ -971,7 +995,12 @@ index 0000000000..b0b363d7ed
|
||||
+}
|
||||
+
|
||||
+listvols() {
|
||||
+ local volname volmode volsize
|
||||
+ local volname volmode volsize json_output json_notfirst
|
||||
+ if [ "$1" = "-j" ]; then
|
||||
+ json_output=1
|
||||
+ shift
|
||||
+ echo "["
|
||||
+ fi
|
||||
+ for voldir in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
|
||||
+ read -r volname < "$voldir/name"
|
||||
+ case "$volname" in
|
||||
@@ -984,8 +1013,24 @@ index 0000000000..b0b363d7ed
|
||||
+ esac
|
||||
+ volmode="${volname:5:2}"
|
||||
+ volname="${volname:8}"
|
||||
+ echo "$volname $volmode $volsize"
|
||||
+ [ "${volname:0:1}" = "." ] && continue
|
||||
+ if [ "$json_output" = "1" ]; then
|
||||
+ [ "$json_notfirst" = "1" ] && echo ","
|
||||
+ echo -e "\t{"
|
||||
+ echo -e "\t\t\"name\": \"$volname\","
|
||||
+ echo -e "\t\t\"mode\": \"$volmode\","
|
||||
+ echo -e "\t\t\"size\": $volsize"
|
||||
+ echo -n -e "\t}"
|
||||
+ json_notfirst=1
|
||||
+ else
|
||||
+ echo "$volname $volmode $volsize"
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ if [ "$json_output" = "1" ]; then
|
||||
+ [ "$json_notfirst" = "1" ] && echo
|
||||
+ echo "]"
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+bootvols() {
|
||||
@@ -1172,13 +1217,27 @@ index 0000000000..4ecd2e165a
|
||||
+flock -x /tmp/run/uvol.lock "$uvol_backend" "$@"
|
||||
diff --git a/package/system/uvol/files/uvol.defaults b/package/system/uvol/files/uvol.defaults
|
||||
new file mode 100644
|
||||
index 0000000000..cbd53a3e4e
|
||||
index 0000000000..e71135f7a8
|
||||
--- /dev/null
|
||||
+++ b/package/system/uvol/files/uvol.defaults
|
||||
@@ -0,0 +1,3 @@
|
||||
@@ -0,0 +1,17 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+uci -q get fstab.@uvol[0].initialized >/dev/null || uvol detect || true
|
||||
+uvol_init() {
|
||||
+ local metasz freesz totalsz
|
||||
+ uvol detect
|
||||
+ metasz="$(uvol size .meta 2>/dev/null)"
|
||||
+ [ "$((metasz))" -gt 0 ] && return
|
||||
+ totalsz="$(uvol total)"
|
||||
+ freesz="$(uvol free)"
|
||||
+ metasz="$((totalsz / 10240))"
|
||||
+ [ "$metasz" -lt 4194304 ] && metasz=4194304
|
||||
+ [ "$metasz" -gt "$freesz" ] && return
|
||||
+ uvol create .meta "$metasz" rw
|
||||
+ uvol up .meta
|
||||
+}
|
||||
+
|
||||
+uci -q get fstab.@uvol[0].initialized >/dev/null || uvol_init
|
||||
diff --git a/package/system/uvol/files/uvol.init b/package/system/uvol/files/uvol.init
|
||||
new file mode 100644
|
||||
index 0000000000..1f6e2aac08
|
||||
|
||||
Reference in New Issue
Block a user