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 995bfa7..41c853c 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() {