[oe] [PATCH] Modified populate-volatile.sh to atomically update volatile.cache, to avoid power loss issues. Signed-off-by: jameslimbouris <james at digitalmatter.com.au>

Paul Menzel paulepanter at users.sourceforge.net
Tue Jun 7 08:50:04 UTC 2011


Dear James,


thank you for your patch.

I am also putting you into CC not knowing if you read the list
regularly. (I am reading the list.)

Am Dienstag, den 07.06.2011, 02:58 +0000 schrieb James Limbouris:

please resend your patch [2], as the commit message ended up in the
subject line/commit summary. Please also prefix the commit summary with
the recipe name [1] and format your name correctly in the Signed-off-by
line. You can take the following one as a starting point and please
adapt/improve it.

8<-------------------------------------------------------------------->8
initscripts: Modify `populate-volatile.sh` to atomically update `volatile.cache`

When power is lost during boot it could happen that
`/etc/volatile.cache` is written too and lays around during the next
boot causing the following problems.

Using a temporary file and renaming it at once avoids those issues.

Signed-off-by: James Limbouris <james at digitalmatter.com.au>
8<-------------------------------------------------------------------->8

> ---
>  .../initscripts-1.0/populate-volatile.sh           |   10 ++++++----
>  1 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/recipes/initscripts/initscripts-1.0/populate-volatile.sh b/recipes/initscripts/initscripts-1.0/populate-volatile.sh
> index 3bb3d94..e355680 100755
> --- a/recipes/initscripts/initscripts-1.0/populate-volatile.sh
> +++ b/recipes/initscripts/initscripts-1.0/populate-volatile.sh
> @@ -14,7 +14,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."
> @@ -29,7 +29,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."
> @@ -41,7 +41,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
> @@ -164,8 +164,10 @@ 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

Does not `/etc/volatile.cache.build` need to be removed during the next
boot up?


Thanks,

Paul


[1] http://openembedded.org/index.php/Commit_Policy
[2] http://openembedded.org/index.php/How_to_submit_a_patch_to_OpenEmbedded
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20110607/fa42a86e/attachment-0002.sig>


More information about the Openembedded-devel mailing list