]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
lvm: fix thin recognition
authorHarald Hoyer <harald@redhat.com>
Wed, 16 Oct 2013 09:30:08 +0000 (11:30 +0200)
committerHarald Hoyer <harald@redhat.com>
Tue, 29 Jul 2014 09:52:02 +0000 (11:52 +0200)
The global var setting was happening in a pipe and did not have an
effect.

Use <<<$() instead.

< <() cannot be used, because dracut is called in chroot's environments,
where /dev/fd does not point to /proc/self/fd, but bash wants
/dev/fd/<num> for this construct.

modules.d/90lvm/module-setup.sh

index 514addc1daafd63d669a99a2801e68f75037c495..50d9b98e3dd8d96d62c4030f355298f9492e5bf6 100755 (executable)
@@ -53,12 +53,13 @@ install() {
     inst lvm
 
     if [[ $hostonly ]]; then
-        get_host_lvs | while read line; do
+        while read line; do
+            [[ -n "$line" ]] || continue
             printf "%s" " rd.lvm.lv=$line"
             if ! [[ $_needthin ]]; then
                 [[ "$(lvs --noheadings -o segtype ${line%%/*} 2>/dev/null)" == *thin* ]] && _needthin=1
             fi
-        done >> "${initdir}/etc/cmdline.d/90lvm.conf"
+        done <<<$(get_host_lvs) >> "${initdir}/etc/cmdline.d/90lvm.conf"
         echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
     else
         _needthin=1