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 <daniel@makrotopia.org>
This commit is contained in:
parent
9eb200f0d5
commit
ad61196780
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue