From 9a50b64449df2583d0c00f0fcbabda15202d1df3 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 20 Sep 2011 23:37:14 -0400 Subject: [PATCH] enter_chroot: re-factor chrome_root mounting to use ensure_mounted The chrome root code doesn't attempt to mount the tree if there is no source root configured. So re-order the code from: - is chrome source mounted ? - does a chrome source exist ? - mount chrome source to the more logical: - does a chrome source exist ? - use ensure_mounted to check+mount This lets us use the mount cache for the chrome mounting and unifies duplicated mount/checking logic. BUG=None TEST=`cros_sdk --enter` still works with simultaneous runs TEST=`cros_sdk --enter -- ls` still works Change-Id: I7e6af9dd7f65cefa04438c2862c931f06237060a Reviewed-on: http://gerrit.chromium.org/gerrit/8032 Commit-Ready: Mike Frysinger Reviewed-by: Mike Frysinger Tested-by: Mike Frysinger --- sdk_lib/enter_chroot.sh | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/sdk_lib/enter_chroot.sh b/sdk_lib/enter_chroot.sh index 68d8255ffe..afcd96f44f 100755 --- a/sdk_lib/enter_chroot.sh +++ b/sdk_lib/enter_chroot.sh @@ -250,29 +250,24 @@ function setup_env { fi fi - MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}${INNER_CHROME_ROOT}")" - if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]; then - CHROME_ROOT="$(readlink -f "$FLAGS_chrome_root" || :)" - if [ -z "$CHROME_ROOT" ]; then - CHROME_ROOT="$(cat "${FLAGS_chroot}${CHROME_ROOT_CONFIG}" \ - 2>/dev/null || :)" - CHROME_ROOT_AUTO=1 - fi - if [[ -n "$CHROME_ROOT" ]]; then - if [[ ! -d "${CHROME_ROOT}/src" ]]; then - error "Not mounting chrome source" - sudo rm -f "${FLAGS_chroot}${CHROME_ROOT_CONFIG}" - if [[ ! "$CHROME_ROOT_AUTO" ]]; then - exit 1 - fi - else - debug "Mounting chrome source at: $INNER_CHROME_ROOT" - sudo bash -c "echo '$CHROME_ROOT' > \ - '${FLAGS_chroot}${CHROME_ROOT_CONFIG}'" - mkdir -p "$MOUNTED_PATH" - sudo mount --bind "$CHROME_ROOT" "$MOUNTED_PATH" || \ - die "Could not mount $MOUNTED_PATH" + CHROME_ROOT="$(readlink -f "$FLAGS_chrome_root" || :)" + if [ -z "$CHROME_ROOT" ]; then + CHROME_ROOT="$(cat "${FLAGS_chroot}${CHROME_ROOT_CONFIG}" \ + 2>/dev/null || :)" + CHROME_ROOT_AUTO=1 + fi + if [[ -n "$CHROME_ROOT" ]]; then + if [[ ! -d "${CHROME_ROOT}/src" ]]; then + error "Not mounting chrome source" + sudo rm -f "${FLAGS_chroot}${CHROME_ROOT_CONFIG}" + if [[ ! "$CHROME_ROOT_AUTO" ]]; then + exit 1 fi + else + debug "Mounting chrome source at: $INNER_CHROME_ROOT" + sudo bash -c "echo '$CHROME_ROOT' > \ + '${FLAGS_chroot}${CHROME_ROOT_CONFIG}'" + ensure_mounted "$CHROME_ROOT" --bind "$INNER_CHROME_ROOT" fi fi