[arch-releng] [PATCH 1/2] Renamed mdraid_is_raid to device_is_raid

Dieter Plaetinck dieter at plaetinck.be
Sat Jan 29 11:00:49 EST 2011


On Sun, 23 Jan 2011 18:06:21 -0500
pyther at pyther.net wrote:

> device_is_raid now uses dev major number to determine if a device is a
> raid device. A major ID of 8 is a /dev/sd? device whereas a major ID
> of 9 is a 'metadata' (raid) device.
> 
> call die_error if a block device is not passed into device_is_raid()
> ---
>  src/core/libs/lib-blockdevices-filesystems.sh |   21
> +++++++-------------- src/core/libs/lib-ui-interactive.sh
> |    2 +- 2 files changed, 8 insertions(+), 15 deletions(-)
> 
> diff --git a/src/core/libs/lib-blockdevices-filesystems.sh
> b/src/core/libs/lib-blockdevices-filesystems.sh index
> 8573b19..021f41b 100644 ---
> a/src/core/libs/lib-blockdevices-filesystems.sh +++
> b/src/core/libs/lib-blockdevices-filesystems.sh @@ -919,20 +919,13 @@
> get_blockdevice_size () 
>  
>  # $1 blockdevice (ex: /dev/md0 or /dev/sda1)
> -# return true when blockdevice is an md raid, otherwise return a
> unset value -mdraid_is_raid()
> -{
> -    local israid
> -    if [ -z $1 ]; then
> -        # Don't call mdadm on empty blockdevice parameter!
> -        israid=""
> -    elif [ "$(mdadm --query $1 | cut -d':' -f2)" == " is not an md
> array" ]; then
> -        israid=""
> -    else
> -        israid=true
> -    fi
> -    echo $israid
> -}
> +# All MD RAID block devices have a major id of 9
> +device_is_raid() {
> +    [[ -b "$1" ]] || die_error "device_is_raid needs a blockdevice
> as \$1 ($1 given)"
> +    [[ -f /proc/mdstast ]] || return 1
> +    local devmajor=$(stat -c %t "$1")
> +    (( devmajor == 9 ))
> +} 
>  
>  # $1 md raid blockdevice (ex: /dev/md0)
>  # return the array member device which is slave 0 in the given array
> diff --git a/src/core/libs/lib-ui-interactive.sh
> b/src/core/libs/lib-ui-interactive.sh index 881af90..829556a 100644
> --- a/src/core/libs/lib-ui-interactive.sh
> +++ b/src/core/libs/lib-ui-interactive.sh
> @@ -878,7 +878,7 @@ interactive_grub() {
>          bootdev=$(mount | grep $var_TARGET_DIR/boot | cut -d' ' -f 1)
>  		# check if bootdev or PART_ROOT is on a md raid array
>          # This dialog is only shown when we detect / or /boot on a
> raid device.
> -		if [ -n "$(mdraid_is_raid $bootdev)" -o -n
> "$(mdraid_is_raid $PART_ROOT)" ]; then
> +		if device_is_raid $bootdev || device_is_raid
> $PART_ROOT; then ask_yesno "Do you have your system installed on
> software raid?\nAnswer 'YES' to install grub to another hard disk."
> no if [ $? -eq 0 ]; then onraid=true

I merged the first patch.
For the second, I looked in both my mailbox and github and haven't
found the correct version with the nullglob disabling.

Dieter


More information about the arch-releng mailing list