From a0c314053b1818a370e6a6aca21dd2594e75ca31 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Sat, 31 Jul 2010 14:20:21 -0400 Subject: init: provide fastforward path for the common case when validating init binary. --- init | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/init b/init index dee5625..abe3c9b 100755 --- a/init +++ b/init @@ -257,19 +257,22 @@ if [ -n "${init}" ]; then fi fi -# Search for valid init -if [ -z "${init}" ] ; then - for inittest in /sbin/init /etc/init /bin/init /bin/sh; do - if validate_init "${inittest}"; then - init="$inittest" - break - fi - done -fi +# Common case: /sbin/init is present +if [ ! -x "${rootmnt}/sbin/init" ]; then + # ... if it's not available search for valid init + if [ -z "${init}" ] ; then + for inittest in /sbin/init /etc/init /bin/init /bin/sh; do + if validate_init "${inittest}"; then + init="$inittest" + break + fi + done + fi -# No init on rootmount -if ! validate_init "${init}" ; then - panic "No init found. Try passing init= bootarg." + # No init on rootmount + if ! validate_init "${init}" ; then + panic "No init found. Try passing init= bootarg." + fi fi maybe_break init -- cgit v1.2.3