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:07 +0000 |
commit | a60432ff4588390f5f955a6da234298e958546e6 (patch) | |
tree | 5d75f33a10e8317072eb5c55bb3ef11e313cf9f9 /meta/recipes-core/initscripts/initscripts-1.0 | |
parent | 8bd3038b62eaf46f9ac09fcdc1ca5e6f6e53a126 (diff) | |
download | openembedded-core-a60432ff4588390f5f955a6da234298e958546e6.tar.gz openembedded-core-a60432ff4588390f5f955a6da234298e958546e6.tar.bz2 openembedded-core-a60432ff4588390f5f955a6da234298e958546e6.zip |
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.
Signed-off-by: James Limbouris <james@digitalmatter.com.au>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/initscripts/initscripts-1.0')
-rwxr-xr-x | meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh | 10 |
1 files changed, 6 insertions, 4 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() { chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " - test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache + test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build [ -e "$1" ] && { [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." @@ -37,7 +37,7 @@ mk_dir() { chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1; chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " - test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache + test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build [ -e "$1" ] && { [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." @@ -49,7 +49,7 @@ mk_dir() { link_file() { EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1" - test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache + test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache.build [ -e "$2" ] && { 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" != " then sh /etc/volatile.cache else - rm -f /etc/volatile.cache + rm -f /etc/volatile.cache /etc/volatile.cache.build for file in `ls -1 "${CFGDIR}" | sort`; do apply_cfgfile "${CFGDIR}/${file}" done + + [ -e /etc/volatile.cache.build ] && sync && mv /etc/volatile.cache.build /etc/volatile.cache fi if test -f /etc/ld.so.cache -a ! -f /var/run/ld.so.cache |