#!/bin/sh
# Copyright(C) 2006 Nokia Corporation.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.

# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA

do_umounts()
{
  MOUNTS=`cat /proc/mounts | cut -d " " -f 2`
  for MOUNT in $MOUNTS ;
  do
    case $MOUNT in 
    /|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/lib/init/rw|/var/run|/var/lock|/tmp)
      continue;;
    *)
      echo $MOUNT needs unmounting
      /bin/umount $MOUNT
      continue;;
    esac  
  done
}

do_ro()
{
  MOUNTS=`cat /proc/mounts | cut -d " " -f 2`
  for MOUNT in $MOUNTS ;
  do
    case $MOUNT in
    /|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/lib/init/rw|/var/run|/var/lock|/tmp)
      continue;;
    *)
      echo Uh, we may still have leftover mount $MOUNT. Switching to RO
      /bin/mount -n -o remount,ro $MOUNT
      continue;;
    esac
  done
}

# Note: please do not whine, whole thing is still a temp hack. 
do_umounts
sync
do_umounts
sync
do_ro 
