Comment on attachment 68712
Improved patch to save previous hibernation method

Review of attachment 68712:
-----------------------------------------------------------------

In do_hibernate() the attempt to save and restore the active mode in
/sys/power/disk fails, causing "sh: I/O error" message in pm log
(attempting to write something that isn't one of the modes in
/sys/power/disk, namely an empty string). Instrumenting the function I
found that HIBERNATE_MODE_SAVE was never set.

The characters [] are special in a shell pattern (which is what follows
the ## and %% shell variable expansion modifiers) and have to be
escaped: \[ \].

The following works as you intended:

do_hibernate()
        {
                [ -n "${HIBERNATE_MODE}" ] && \
                grep -qw "${HIBERNATE_MODE}" /sys/power/disk && \
                #df 2016-02-07 Shell patterns have to be escaped \[ \]! Fixes 
sh: I/O error when -z $HIBERNATE_MODE_SAVE 
                HIBERNATE_MODE_SAVE=$(cat /sys/power/disk) && \
                HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE##*\[}" && \
                HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE%%\]*}" && \
                echo -n "${HIBERNATE_MODE}" > /sys/power/disk
                echo -n "disk" > /sys/power/state
                RET=$?
                echo -n "$HIBERNATE_MODE_SAVE" > /sys/power/disk
                return "$RET"
        }

Although you could make the penultimate line as follows I don't
recommend it because it would hide any problems like the escaping issue
that could cause HIBERNATE_MODE_SAVE to be invalid:

                [ -n "$HIBERNATE_MODE_SAVE" ] && echo -n
"$HIBERNATE_MODE_SAVE" > /sys/power/disk

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to pm-utils in Ubuntu.
https://bugs.launchpad.net/bugs/1172692

Title:
  Please implement in-kernel suspend to both

To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/1172692/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to