[PATCH openbmc 7/7] obmc-initfs: shutdown when rofs is a loop mounted image in /run

Brad Bishop brad at bwbmail.net
Tue Feb 9 04:07:39 AEDT 2016


Reviewed-by: Brad Bishop <brad at bwbmail.net>

> On Feb 6, 2016, at 7:00 PM, OpenBMC Patches <openbmc-patches at stwcx.xyz> wrote:
> 
> From: Milton Miller <miltonm at us.ibm.com>
> 
> If one sets rodir=/run/image-rofs roopts=ro,loop and transfers
> an image one can run from a base image in ram.  However, the
> shutdown will fail to unmount /run because it is busy and then
> fails to unmount /cow which causes oldroot to be still mounted.
> 
> By moving the mount to the side everything cleans up (as long
> as there are no other mounts under run, and systemd-shutdown
> tried to do as much as possible).
> 
> Signed-off-by: Milton Miller <miltonm at us.ibm.com>
> ---
> .../recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh
> index 7d1157a..3eff1ea 100644
> --- a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh
> +++ b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-shutdown.sh
> @@ -15,11 +15,16 @@ else
> 	umount_proc=
> fi
> 
> -# remove an empty oldroot, that means we are not invoked from systemd-shutdown
> +# Remove an empty oldroot, that means we are not invoked from systemd-shutdown
> rmdir /oldroot 2>/dev/null
> 
> +# Move /oldroot/run to /mnt in case it has the underlying rofs loop mounted.
> +# Ordered before /oldroot the overlay is unmounted before the loop mount
> +mkdir -p /mnt
> +mount --move /oldroot/run /mnt
> +
> set -x
> -for f in $( awk '/oldroot/ { print $2 }' < /proc/mounts | sort -r )
> +for f in $( awk '/oldroot|mnt/ { print $2 }' < /proc/mounts | sort -r )
> do
> 	umount $f
> done
> -- 
> 2.6.4
> 
> 
> _______________________________________________
> openbmc mailing list
> openbmc at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc


More information about the openbmc mailing list