On Mon, Aug 27, 2012 at 02:35:28PM +0800, Dave Young wrote: > On 08/23/2012 11:31 PM, Vivek Goyal wrote: > > > On Thu, Aug 23, 2012 at 11:02:22AM +0800, dyoung@xxxxxxxxxx wrote: > >> each dev in host_devs[] should be waited in initqueue to make sure they > >> are oneline before initqueue finish. > >> > >> Add a new wait_host_devs.sh in base module to make this a generic thing. > >> Because all the devs in fstab lines are also added to host_devs, so no need > >> do same wait in fstab-sys module anymore. > >> > >> [v2->v3]: do not add slave devices to host_devs > >> wait for persistent dev name in initramfs > >> > >> Signed-off-by: Dave Young <dyoung@xxxxxxxxxx> > >> --- > >> dracut.sh | 16 ++++++++++++++++ > >> modules.d/95fstab-sys/module-setup.sh | 1 - > >> modules.d/95fstab-sys/wait-mount-dev.sh | 22 ---------------------- > >> modules.d/99base/module-setup.sh | 1 + > >> modules.d/99base/wait-host-devs.sh | 20 ++++++++++++++++++++ > >> 5 files changed, 37 insertions(+), 23 deletions(-) > >> > >> --- dracut.orig/dracut.sh > >> +++ dracut/dracut.sh > >> @@ -903,6 +903,22 @@ done > >> > >> dinfo "*** Including modules done ***" > >> > >> +get_persistent_dev() { > >> + local i _tmp > >> + local _dev=${1##*/} > >> + > >> + for i in /dev/disk/by-id/*; do > >> + _tmp=$(readlink $i) > >> + [ "${_tmp##*/}" = "$_dev" ] && echo $i && return > >> + done > >> +} > >> + > > > > I am wondering that will it be better to rely on user to pass the > > persistent device name instead of we trying to convert it into a name > > generated by udev. > > > > I kind of prefer to let user provide the persistent name instead of > > dong tricks internally. (Either in fstab or using --device option). > > > This patchset make the wait_for_dev globally, it will wait for all > devices in host_devs. This not only limited to fstab and --device > passed items, such as below code, for these system mountpoint it's still > necessary to find the udev name if we want to wait them in initramfs: > > push host_mp \ > "/" \ > "/etc" \ > "/usr" \ > "/usr/bin" \ > "/usr/sbin" \ > "/usr/lib" \ > "/usr/lib64" \ > "/boot" > > for mp in "${host_mp[@]}"; do > mountpoint "$mp" >/dev/null 2>&1 || continue > push host_devs $(readlink -f "/dev/block/$(find_block_device > "$mp")") > done - If these filesystems are mounted on different devices, they should be part of /etc/fstab and shouldn't fstab module take care of making sure underlying devices are up. Anyway, I am not too particular about this. So go ahead and post next version of patches and let harald decide whether he likes it or not. Vivek -- 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