]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
Don't set an already set attribute (#826357)
authorJesse Keating <jkeating@redhat.com>
Fri, 1 Jun 2012 01:41:25 +0000 (18:41 -0700)
committerHarald Hoyer <harald@redhat.com>
Mon, 4 Jun 2012 09:06:13 +0000 (11:06 +0200)
Depending on how the dasd_mod module was loaded, our device could have
already been marked as online or offline.  We need to make the sysecho
sensitive to this and not fail if the attribute we're trying to set has
already been set.

modules.d/80cms/cmssetup.sh

index 995bfa7aa3975b3eb94c85b8817cb84d3aade59d..41c853cb65fc2625ca172c8a658b655db68ab6a4 100755 (executable)
@@ -5,7 +5,7 @@
 type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
 
 function sysecho () {
-    file=$1
+    file="$1"
     shift
     local i=1
     while [ $i -le 10 ] ; do
@@ -16,7 +16,11 @@ function sysecho () {
             break
         fi
     done
-    [ -f "$file" ] && echo $* > $file
+    local status
+    read status < "$file"
+    if [[ ! $status == $* ]]; then
+        [ -f "$file" ] && echo $* > "$file"
+    fi
 }
 
 function dasd_settle() {