All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	chaowang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH] move get_persistent_dev to dracut-functions.sh
Date: Tue, 11 Sep 2012 09:33:00 -0400	[thread overview]
Message-ID: <20120911133300.GB11743@redhat.com> (raw)
In-Reply-To: <504E947C.7060205-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

On Tue, Sep 11, 2012 at 09:31:40AM +0800, Dave Young wrote:
> On 09/10/2012 10:40 PM, Vivek Goyal wrote:
> 
> > 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-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> >> ---
> >>  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.
> 
> 
> Hi,
> 
> /dev/disk/by-id/* are symlinks, $1 could be soft link as well, using
> udevadm will be simpler because we do not need follow symlinks and
> handle the string prefix.

dracut function get_maj_min() uses "stat" with -L option which will
automatically following symlinks if need be. Calling into udevadm
for every possible device (/dev/disk/by-id/*) seems overkill to me. Anyway,
harald has already committed this patch. So we will simplify it some
other time.

One advantage of converting to kernel names is that looking into 
/proc/mounts will give us the mount point. I was converting device
name into maj:min and looking into /proc/self/mountinfo to determine
the mount point.

So converting to kernel name does seem to have this little advantage
of being able to find device name and associated mountpoint in
/proc/mounts.

Thanks
Vivek

  parent reply	other threads:[~2012-09-11 13:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-10  8:10 [PATCH] move get_persistent_dev to dracut-functions.sh Dave Young
     [not found] ` <20120910081046.GA15522-je1gSBvt1Td3da3rpXeqgR/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2012-09-10 14:40   ` Vivek Goyal
     [not found]     ` <20120910144031.GC639-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-09-11  1:31       ` Dave Young
     [not found]         ` <504E947C.7060205-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-09-11 13:33           ` Vivek Goyal [this message]
     [not found]             ` <20120911133300.GB11743-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-09-12  6:11               ` Dave Young

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120911133300.GB11743@redhat.com \
    --to=vgoyal-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=chaowang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.