Blob Blame History Raw
From dbd9f15d806bc3925991809525ab44faf7ecc5f9 Mon Sep 17 00:00:00 2001
From: Jesse Keating <jkeating@redhat.com>
Date: Thu, 31 May 2012 18:41:25 -0700
Subject: [PATCH] Don't set an already set attribute (#826357)

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 | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/modules.d/80cms/cmssetup.sh b/modules.d/80cms/cmssetup.sh
index 995bfa7..41c853c 100755
--- a/modules.d/80cms/cmssetup.sh
+++ b/modules.d/80cms/cmssetup.sh
@@ -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() {