On Mon, Mar 23, 2015 at 5:28 PM, Randy Witt <randy.e.w...@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 ? > > 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.w...@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@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core