diff options
| author | James Limbouris <james@digitalmatter.com.au> | 2012-02-29 09:13:46 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-02 15:22:54 +0000 |
| commit | 348ea458a4481a857777d5cd4b9784e085a4e3d5 (patch) | |
| tree | 38ce333108ac5a92d702d484ffe9b3c1f4a31c90 | |
| parent | 6c959b13e7d6793d105ecfe0cef14991684873c1 (diff) | |
| download | poky-348ea458a4481a857777d5cd4b9784e085a4e3d5.tar.gz | |
initscripts: Create the volatiles cache atomically.
If a machine loses power while building the volatiles cache, it will
continue to operate with an incomplete set of volatiles. Fix this by
updating atomically.
(From OE-Core rev: a60432ff4588390f5f955a6da234298e958546e6)
Signed-off-by: James Limbouris <james@digitalmatter.com.au>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rwxr-xr-x | meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh | 10 | ||||
| -rw-r--r-- | meta/recipes-core/initscripts/initscripts_1.0.bb | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh index 1813fd1240..4a99aff6a4 100755 --- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh +++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh | |||
| @@ -22,7 +22,7 @@ create_file() { | |||
| 22 | chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; | 22 | chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; |
| 23 | chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " | 23 | chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " |
| 24 | 24 | ||
| 25 | test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache | 25 | test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build |
| 26 | 26 | ||
| 27 | [ -e "$1" ] && { | 27 | [ -e "$1" ] && { |
| 28 | [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." | 28 | [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." |
| @@ -37,7 +37,7 @@ mk_dir() { | |||
| 37 | chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; | 37 | chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; |
| 38 | chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " | 38 | chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " |
| 39 | 39 | ||
| 40 | test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache | 40 | test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build |
| 41 | 41 | ||
| 42 | [ -e "$1" ] && { | 42 | [ -e "$1" ] && { |
| 43 | [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." | 43 | [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." |
| @@ -49,7 +49,7 @@ mk_dir() { | |||
| 49 | link_file() { | 49 | link_file() { |
| 50 | EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1" | 50 | EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1" |
| 51 | 51 | ||
| 52 | test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache | 52 | test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache.build |
| 53 | 53 | ||
| 54 | [ -e "$2" ] && { | 54 | [ -e "$2" ] && { |
| 55 | echo "Cannot create link over existing -${TNAME}-." >&2 | 55 | echo "Cannot create link over existing -${TNAME}-." >&2 |
| @@ -185,10 +185,12 @@ if test -e /etc/volatile.cache -a "$VOLATILE_ENABLE_CACHE" = "yes" -a "x$1" != " | |||
| 185 | then | 185 | then |
| 186 | sh /etc/volatile.cache | 186 | sh /etc/volatile.cache |
| 187 | else | 187 | else |
| 188 | rm -f /etc/volatile.cache | 188 | rm -f /etc/volatile.cache /etc/volatile.cache.build |
| 189 | for file in `ls -1 "${CFGDIR}" | sort`; do | 189 | for file in `ls -1 "${CFGDIR}" | sort`; do |
| 190 | apply_cfgfile "${CFGDIR}/${file}" | 190 | apply_cfgfile "${CFGDIR}/${file}" |
| 191 | done | 191 | done |
| 192 | |||
| 193 | [ -e /etc/volatile.cache.build ] && sync && mv /etc/volatile.cache.build /etc/volatile.cache | ||
| 192 | fi | 194 | fi |
| 193 | 195 | ||
| 194 | if test -f /etc/ld.so.cache -a ! -f /var/run/ld.so.cache | 196 | if test -f /etc/ld.so.cache -a ! -f /var/run/ld.so.cache |
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb index 68701cee39..f3dc852624 100644 --- a/meta/recipes-core/initscripts/initscripts_1.0.bb +++ b/meta/recipes-core/initscripts/initscripts_1.0.bb | |||
| @@ -3,7 +3,7 @@ DESCRIPTION = "Initscripts provide the basic system startup initialization scrip | |||
| 3 | SECTION = "base" | 3 | SECTION = "base" |
| 4 | LICENSE = "GPLv2" | 4 | LICENSE = "GPLv2" |
| 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" | 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" |
| 6 | PR = "r132" | 6 | PR = "r133" |
| 7 | 7 | ||
| 8 | INHIBIT_DEFAULT_DEPS = "1" | 8 | INHIBIT_DEFAULT_DEPS = "1" |
| 9 | 9 | ||
