summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2017-02-18 23:48:57 +0000
committerBen Hutchings <ben@decadent.org.uk>2017-04-08 20:44:18 +0100
commit25837a143420c217416e662771993ca7405cd109 (patch)
tree515a560252d4ef6fb48841d682bd30d1924a246e
parent2be97ee71ccf676c0f8f4dc38589aeac768b09a0 (diff)
scripts/local-premount/resume: Use local_device_setup for resume device
Currently we don't wait for the resume device to appear, and will boot without resuming if it is too slow to appear (e.g. USB storage or, in the reported case, an NVMe device!). Use local_device_setup to wait for the device, the same as we do for the root and /usr devices. This also takes care of resolving UUID= and LABEL= syntax, and adds support for PARTUUID= and PARTLABEL=. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Closes: #854791
-rwxr-xr-xscripts/local-premount/resume41
1 files changed, 7 insertions, 34 deletions
diff --git a/scripts/local-premount/resume b/scripts/local-premount/resume
index 6b3c7c3..4cafcaa 100755
--- a/scripts/local-premount/resume
+++ b/scripts/local-premount/resume
@@ -19,43 +19,16 @@ if [ -z "${resume}" ] || [ ! -e /sys/power/resume ]; then
exit 0
fi
-case $resume in
-LABEL=*)
- resume="${resume#LABEL=}"
+. /scripts/functions
+. /scripts/local
- # support any / in LABEL= path (escape to \x2f)
- case "${resume}" in
- */*)
- if command -v sed >/dev/null 2>&1; then
- resume="$(echo ${resume} | sed 's,/,\\x2f,g')"
- else
- if [ "${resume}" != "${resume#/}" ]; then
- resume="\x2f${resume#/}"
- fi
- if [ "${resume}" != "${resume%/}" ]; then
- resume="${resume%/}\x2f"
- fi
- IFS='/'
- newresume=
- for s in $resume; do
- newresume="${newresume:+${newresume}\\x2f}${s}"
- done
- unset IFS
- resume="${newresume}"
- fi
- esac
- resume="/dev/disk/by-label/${resume}"
- ;;
-UUID=*)
- resume="/dev/disk/by-uuid/${resume#UUID=}"
- ;;
-esac
-
-[ ! -e "${resume}" ] && exit 0
+if ! local_device_setup ${resume} "suspend/resume device" false; then
+ exit 0
+fi
# hardcode path, uswsusp ships an resume binary too
if [ -n "${resume_offset}" ]; then
- /bin/resume ${resume} ${resume_offset}
+ /bin/resume ${DEV} ${resume_offset}
else
- /bin/resume ${resume}
+ /bin/resume ${DEV}
fi