[OE-core] [PATCH 2/2] image.bbclass: Empty /var/volatile if it is a mount point

randy.e.witt at linux.intel.com randy.e.witt at linux.intel.com
Tue Mar 24 15:46:07 UTC 2015


> On Mon, Mar 23, 2015 at 5:28 PM, Randy Witt
> <randy.e.witt at linux.intel.com> wrote:
>> If /var/volatile is a mount point it shouldn't contain any files before
>> mount time. If files are there, they will no longer be able to be
>> accessed
>> once the tmpfs gets mounted at /var/volatile.
>
> why not use copy-bind when mounting it second time as tmpfs ?
>

Khem, could you elaborate? I'm not sure I know the mechanism to which you
are referring.

>>
>> This problem can be seen for instance when systemd creates
>> /var/volatile/log/journal as part of its package installation. It then
>> assumes the journal is persistent even though /var/volatile/log/journal
>> goes away shortly thereafter.
>>
>> This change makes sure that there are no files in /var/volatile if it is
>> to be used as a mount point.
>>
>> [Yocto #7388]
>>
>> Signed-off-by: Randy Witt <randy.e.witt at linux.intel.com>
>> ---
>>  meta/classes/image.bbclass | 16 ++++++++++++++++
>>  1 file changed, 16 insertions(+)
>>
>> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
>> index 89eb5f3..dfedf9d 100644
>> --- a/meta/classes/image.bbclass
>> +++ b/meta/classes/image.bbclass
>> @@ -181,6 +181,8 @@ POSTINST_LOGFILE ?=
>> "${localstatedir}/log/postinstall.log"
>>  SYSTEMD_DEFAULT_TARGET ?= '${@bb.utils.contains("IMAGE_FEATURES",
>> "x11-base", "graphical.target", "multi-user.target", d)}'
>>  ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES",
>> "systemd", "set_systemd_default_target; ", "", d)}'
>>
>> +ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
>> +
>>  # some default locales
>>  IMAGE_LINGUAS ?= "de-de fr-fr en-gb"
>>
>> @@ -377,6 +379,20 @@ set_systemd_default_target () {
>>         fi
>>  }
>>
>> +# If /var/volatile is not empty, we have seen problems where programs
>> such as the
>> +# journal make assumptions based on the contents of /var/volatile. The
>> journal
>> +# would then write to /var/volatile before it was mounted, thus hiding
>> the
>> +# items previously written.
>> +#
>> +# This change is to attempt to fix those types of issues in a way that
>> doesn't
>> +# affect users that may not be using /var/volatile.
>> +empty_var_volatile () {
>> +       match=`awk '$1 !~ "#" && $2 ~ /\/var\/volatile/{print $2}'
>> ${IMAGE_ROOTFS}/etc/fstab 2> /dev/null`
>> +       if [ -n "$match" ]; then
>> +               find ${IMAGE_ROOTFS}/var/volatile -mindepth 1 -delete
>> +       fi
>> +}
>> +
>>  # Turn any symbolic /sbin/init link into a file
>>  remove_init_link () {
>>         if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then
>> --
>> 1.9.3
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>




More information about the Openembedded-core mailing list