diff options
| author | An-Cheng Huang <ancheng@vyatta.com> | 2010-09-09 14:10:39 -0700 |
|---|---|---|
| committer | An-Cheng Huang <ancheng@vyatta.com> | 2010-09-09 14:10:39 -0700 |
| commit | d000689490bbc3508f18b878757b3d2bb04d8a69 (patch) | |
| tree | 40388b9f23e75fc4c0884f7fb076f2d6382e1136 /scripts/local-premount | |
| parent | b9c92a3bb82e860c8368eb7933f5ec4ddcd74bcb (diff) | |
| parent | 3963c563cf1ea4b1126a4c1949181029a0ff2305 (diff) | |
| download | initramfs-tools-d000689490bbc3508f18b878757b3d2bb04d8a69.tar.gz initramfs-tools-d000689490bbc3508f18b878757b3d2bb04d8a69.zip | |
Merge remote branch 'debian/master' into upstream
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 |
