Re: [PATCH] move get_persistent_dev to dracut-functions.sh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 10, 2012 at 04:10:46PM +0800, Dave Young wrote:
> kdump module also need to convert dev name to udev symlinks.
> So better to move function get_persistent_dev() to dracut-functions.sh
> 
> Also in this patch improvement and fix the original function:
> a) use udevadm info --query=name to get the kernel name.
>    This will fix the issue caused by passing symbolic link of a device.
> b) fix a bug to compare $_tmp instead of $i with $_dev. Really sorry,
>    should have tested more carefully.
> 
> Signed-off-by: Dave Young <dyoung@xxxxxxxxxx>
> ---
>  dracut-functions.sh              |   14 ++++++++++++++
>  modules.d/99base/module-setup.sh |   13 -------------
>  2 files changed, 14 insertions(+), 13 deletions(-)
> 
> --- dracut.orig/dracut-functions.sh
> +++ dracut/dracut-functions.sh
> @@ -239,6 +239,21 @@ else
>      }
>  fi
>  
> +get_persistent_dev() {
> +    local i _tmp _dev
> +
> +    _dev=$(udevadm info --query=name --name="$1" 2>/dev/null)
> +    [ -z "$_dev" ] && return
> +
> +    for i in /dev/disk/by-id/*; do
> +        _tmp=$(udevadm info --query=name --name="$i" 2>/dev/null)
> +        if [ "$_tmp" = "$_dev" ]; then
> +            echo $i
> +            return
> +        fi
> +    done
> +}
> +

Can't we just compare the maj:min number of device and come up with udev
name? I think that would be simpler and we will not have to call into
udevadm.

Thanks
Vivek

>  # get_fs_env <device>
>  # Get and set the ID_FS_TYPE and ID_FS_UUID variable from udev for a device.
>  # Example:
> --- dracut.orig/modules.d/99base/module-setup.sh
> +++ dracut/modules.d/99base/module-setup.sh
> @@ -11,19 +11,6 @@ depends() {
>      return 0
>  }
>  
> -get_persistent_dev() {
> -    local i _tmp
> -    local _dev=${1##*/}
> -
> -    for i in /dev/disk/by-id/*; do
> -        _tmp=$(readlink $i)
> -        if [ "$i" = "$_dev" ]; then
> -            echo $i
> -            return
> -        fi
> -    done
> -}
> -
>  install() {
>      local _d
>      dracut_install mount mknod mkdir pidof sleep chroot \
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux