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