From ad61196780e0467df96eefe5955b1bb8af1d4a5d Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Fri, 16 Jul 2021 22:01:26 +0100 Subject: [PATCH] uvol: general clean up * make sure new volumes are in state 'down' until explicitely requested to transition to 'up' state. Useful for additional verification steps after writing a read-only volume. * remove unused ubus events as blockd does that much better now Signed-off-by: Daniel Golle --- utils/uvol/files/lvm.sh | 7 +++---- utils/uvol/files/ubi.sh | 32 +++++++++----------------------- 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/utils/uvol/files/lvm.sh b/utils/uvol/files/lvm.sh index 06a4920b8..cf808aea0 100644 --- a/utils/uvol/files/lvm.sh +++ b/utils/uvol/files/lvm.sh @@ -239,7 +239,6 @@ createvol() { fi lvm_cmd lvrename "$vg_name" "wp_$1" "rw_$1" exportlv "$1" - ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"${lv_name:0:2}\", \"device\": \"$lv_dm_path\"}" return 0 } @@ -247,7 +246,6 @@ removevol() { exportlv "$1" [ "$lv_full_name" ] || return 2 lvm_cmd lvremove -y "$lv_full_name" - ubus send block.volume "{\"name\": \"$1\", \"action\": \"down\", \"mode\": \"${lv_name:0:2}\", \"device\": \"$lv_dm_path\"}" } updatevol() { @@ -256,11 +254,12 @@ updatevol() { [ "$lv_size" -ge "$2" ] || return 27 case "$lv_path" in /dev/*/wo_*) - lvm_cmd lvchange -a y -p rw "$lv_full_name" + lvm_cmd lvchange -p rw "$lv_full_name" + lvm_cmd lvchange -a y "$lv_full_name" dd of="$lv_path" + lvm_cmd lvchange -a n "$lv_full_name" lvm_cmd lvchange -p r "$lv_full_name" lvm_cmd lvrename "$lv_full_name" "${lv_full_name%%/*}/ro_$1" - ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"ro\", \"device\": \"$(getdev "$@")\"}" return 0 ;; default) diff --git a/utils/uvol/files/ubi.sh b/utils/uvol/files/ubi.sh index 0664ce935..3eb79adb9 100644 --- a/utils/uvol/files/ubi.sh +++ b/utils/uvol/files/ubi.sh @@ -114,22 +114,15 @@ createvol() { ubiupdatevol -t "/dev/$voldev" [ "$mode" = "wp" ] || return 0 mkubifs "/dev/$voldev" - ubirename "/dev/$ubidev" "uvol-wp-$1" "uvol-rw-$1" - ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"rw\", \"fstype\": \"ubifs\", \"device\": \"/dev/$voldev\"}" + ubirename "/dev/$ubidev" "uvol-wp-$1" "uvol-wd-$1" } removevol() { - local voldev evdata + local voldev voldev=$(getdev "$@") [ "$voldev" ] || return 2 - if vol_is_mode "$voldev" rw ; then - evdata="{\"name\": \"$1\", \"action\": \"down\", \"device\": \"/dev/$voldev\"}" - elif vol_is_mode "$voldev" ro && [ -e "/dev/ubiblock${voldev:3}" ]; then - evdata="{\"name\": \"$1\", \"action\": \"down\", \"device\": \"/dev/ubiblock${voldev:3}\"}" - fi local volnum="${voldev#${ubidev}_}" ubirmvol "/dev/$ubidev" -n "$volnum" || return $? - [ "$evdata" ] && ubus send block.volume "$evdata" } activatevol() { @@ -137,16 +130,15 @@ activatevol() { voldev="$(getdev "$@")" [ "$voldev" ] || return 2 vol_is_mode "$voldev" rw && return 0 + vol_is_mode "$voldev" ro && return 0 vol_is_mode "$voldev" wo && return 22 vol_is_mode "$voldev" wp && return 16 - if vol_is_mode "$voldev" ro; then - [ -e "/dev/ubiblock${voldev:3}" ] && return 0 + if vol_is_mode "$voldev" rd; then + ubirename "/dev/$ubidev" "uvol-rd-$1" "uvol-ro-$1" ubiblock --create "/dev/$voldev" - ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"ro\", \"device\": \"/dev/ubiblock${voldev:3}\"}" return 0 elif vol_is_mode "$voldev" wd; then ubirename "/dev/$ubidev" "uvol-wd-$1" "uvol-rw-$1" - ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"rw\", \"fstype\": \"ubifs\", \"device\": \"/dev/$voldev\"}" return 0 fi } @@ -155,16 +147,17 @@ disactivatevol() { local voldev voldev="$(getdev "$@")" [ "$voldev" ] || return 2 + vol_is_mode "$voldev" rd && return 0 + vol_is_mode "$voldev" wd && return 0 vol_is_mode "$voldev" wo && return 22 vol_is_mode "$voldev" wp && return 16 if vol_is_mode "$voldev" ro; then [ -e "/dev/ubiblock${voldev:3}" ] || return 0 ubiblock --remove "/dev/$voldev" || return $? - ubus send block.volume "{\"name\": \"$1\", \"action\": \"down\", \"mode\": \"ro\", \"device\": \"/dev/ubiblock${voldev:3}\"}" + ubirename "/dev/$ubidev" "uvol-ro-$1" "uvol-rd-$1" || return $? return 0 elif vol_is_mode "$voldev" rw; then ubirename "/dev/$ubidev" "uvol-rw-$1" "uvol-wd-$1" || return $? - ubus send block.volume "{\"name\": \"$1\", \"action\": \"down\", \"mode\": \"rw\", \"device\": \"/dev/$voldev\"}" return 0 fi } @@ -176,9 +169,7 @@ updatevol() { [ "$2" ] || return 22 vol_is_mode "$voldev" wo || return 22 ubiupdatevol -s "$2" "/dev/$voldev" - - ubirename "/dev/$ubidev" "uvol-wo-$1" "uvol-ro-$1" - ubiblock --create "/dev/$voldev" - ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"ro\", \"device\": \"/dev/ubiblock${voldev:3}\"}" + ubirename "/dev/$ubidev" "uvol-wo-$1" "uvol-rd-$1" } listvols() { @@ -210,17 +201,12 @@ bootvols() { voldev="/dev/ubiblock${voldev:3}" ubiblock --create "/dev/$voldev" ;; - uvol-rw-*) - voldev="/dev/$voldev" - fstype="ubifs" - ;; *) continue ;; esac volmode="${volname:5:2}" volname="${volname:8}" - ubus send block.volume "{\"name\": \"$volname\", \"action\": \"up\", \"mode\": \"$volmode\",${fstype:+ \"fstype\": \"$fstype\", }\"device\": \"$voldev\"}" done }