summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWill Woods <wwoods@redhat.com>2012-04-02 16:48:18 -0400
committerWill Woods <wwoods@redhat.com>2012-04-03 16:37:45 -0400
commitfd3742ad638437010800e45f9b36e9cc23d530f7 (patch)
tree4fdc3ad747ab9010a19fbde573266b0364186ac5
parentf1c3eddf04e0a0110ca580e54a39265d975c35b2 (diff)
downloadanaconda-fd3742ad638437010800e45f9b36e9cc23d530f7.tar.gz
anaconda-fd3742ad638437010800e45f9b36e9cc23d530f7.tar.xz
anaconda-fd3742ad638437010800e45f9b36e9cc23d530f7.zip
dracut when_diskdev_appears: only run cmd once per device
Use initqueue --unique to ensure the command can only be enqueued once. Also, make sure anaconda-diskroot gets the correct device name.
-rwxr-xr-xdracut/anaconda-lib.sh2
-rwxr-xr-xdracut/kickstart-genrules.sh4
-rwxr-xr-xdracut/repo-genrules.sh4
3 files changed, 5 insertions, 5 deletions
diff --git a/dracut/anaconda-lib.sh b/dracut/anaconda-lib.sh
index d4c995365..1083bcb40 100755
--- a/dracut/anaconda-lib.sh
+++ b/dracut/anaconda-lib.sh
@@ -81,7 +81,7 @@ disk_to_dev_path() {
when_diskdev_appears() {
local dev="${1#/dev/}" cmd=""; shift
- cmd="/sbin/initqueue --settled --onetime $*"
+ cmd="/sbin/initqueue --settled --onetime --unique --name $1-$dev $*"
{
printf 'SUBSYSTEM=="block", KERNEL=="%s", RUN+="%s"\n' "$dev" "$cmd"
printf 'SUBSYSTEM=="block", SYMLINK=="%s", RUN+="%s"\n' "$dev" "$cmd"
diff --git a/dracut/kickstart-genrules.sh b/dracut/kickstart-genrules.sh
index 87a08b7b4..7a69fa52c 100755
--- a/dracut/kickstart-genrules.sh
+++ b/dracut/kickstart-genrules.sh
@@ -14,8 +14,8 @@ case "${kickstart%%:*}" in
warn "can't get kickstart: biospart isn't supported yet"
ksdev=""
else
- when_diskdev_appears "$ksdev" \
- "/sbin/fetch-kickstart-disk \$env{DEVNAME} $kspath"
+ when_diskdev_appears $ksdev \
+ fetch-kickstart-disk \$env{DEVNAME} $kspath
wait_for_kickstart
fi
;;
diff --git a/dracut/repo-genrules.sh b/dracut/repo-genrules.sh
index 24ee9262c..5f44a13f8 100755
--- a/dracut/repo-genrules.sh
+++ b/dracut/repo-genrules.sh
@@ -7,8 +7,8 @@ case "$root" in
# anaconda-disk:<device>[:<path>]
splitsep ":" "$root" f diskdev diskpath
diskdev=$(disk_to_dev_path $diskdev)
- when_diskdev_appears "$diskdev" \
- "/sbin/anaconda-diskroot $diskdev $diskpath"
+ when_diskdev_appears $diskdev \
+ anaconda-diskroot \$env{DEVNAME} $diskpath
;;
anaconda-auto-cd)
# special catch-all rule for CDROMs