diff options
| author | An-Cheng Huang <ancheng@vyatta.com> | 2010-09-09 17:12:53 -0700 |
|---|---|---|
| committer | An-Cheng Huang <ancheng@vyatta.com> | 2010-09-09 17:12:53 -0700 |
| commit | 573e21e410934f2293d5ac4c738af5f77083b43b (patch) | |
| tree | 006a2586447b7f2e9353556f74633db605436777 /scripts/local-premount | |
| parent | 0de1ad17c333d645774ac3b48d652ccd4ecd6900 (diff) | |
| parent | 7a6f9e972def00f7f0435d9f2616bcb79dc619b7 (diff) | |
| download | initramfs-tools-573e21e410934f2293d5ac4c738af5f77083b43b.tar.gz initramfs-tools-573e21e410934f2293d5ac4c738af5f77083b43b.zip | |
Merge branch 'upstream' (0.98.2) into mendocino
Conflicts:
debian/changelog
debian/compat
debian/control
debian/rules
hook-functions
mkinitramfs
Diffstat (limited to 'scripts/local-premount')
| -rwxr-xr-x | scripts/local-premount/resume | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/scripts/local-premount/resume b/scripts/local-premount/resume index 6bf95e5..11acfc7 100755 --- a/scripts/local-premount/resume +++ b/scripts/local-premount/resume @@ -20,10 +20,33 @@ if [ -z "${resume}" ]; then fi case $resume in - LABEL=*) - resume="/dev/disk/by-label/${resume#LABEL=}" +LABEL=*) + resume="${resume#LABEL=}" + + # 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=*) +UUID=*) resume="/dev/disk/by-uuid/${resume#UUID=}" ;; esac |
