From: Victor Lowther Date: Sat, 22 Aug 2009 03:11:36 +0000 (-0500) Subject: Add accurate --hostonly checking for 95iscsi X-Git-Tag: 001~30 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=054e038512e682aa61885f09bec898a87144200a;p=thirdparty%2Fdracut.git Add accurate --hostonly checking for 95iscsi --- diff --git a/modules.d/95iscsi/check b/modules.d/95iscsi/check index 274a49b95..5a47d97bd 100755 --- a/modules.d/95iscsi/check +++ b/modules.d/95iscsi/check @@ -1,11 +1,35 @@ -#!/bin/sh +#!/bin/bash # We depend on network modules being loaded [ "$1" = "-d" ] && echo network +# If our prerequisites are not met, fail anyways. +which iscsistart hostname iscsi-iname >/dev/null 2>&1 || exit 1 + # If hostonly was requested, fail the check if we are not actually # booting from root. -#[ "$1" = "-h" ] && ! egrep -q '/ /dev/nbd[0-9]*' /proc/mounts && exit 1 -# If our prerequisites are not met, fail anyways. -which iscsistart hostname iscsi-iname >/dev/null 2>&1 || exit 1 +. $dracutfunctions + +[[ $debug ]] && set -x + +is_iscsi() ( + [[ -L /sys/dev/block/$1 ]] || return + cd "$(readlink -f /sys/dev/block/$1)" + until [[ -d sys || -d iscsi_session ]]; do + cd .. + done + [[ -d iscsi_session ]] +) + +case $1 in + -h) rootdev=$(find_root_block_device) + if [[ $rootdev ]]; then + # root lives on a block device, so we can be more precise about + # hostonly checking + check_block_and_slaves is_iscsi "$rootdev" || exit 1 + else + exit 1 + fi ;; +esac + exit 0