summaryrefslogtreecommitdiffstats
path: root/client/engine
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2016-04-08 09:36:48 +0000
committerramon <ramongomez@us.es>2016-04-08 09:36:48 +0000
commit01d425390ced0e20b320630619ea3dff749f4563 (patch)
tree38e4c212a781429ee8955d0ca6b7649cdb378b56 /client/engine
parent492bf9cfb8ab1043da8f65e9576aa534a1eeedb5 (diff)
#744: Nuevas funciones {{{ogLockDisk}}} y {{{ogUnlockDisk}}}.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4869 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/engine')
-rwxr-xr-xclient/engine/Disk.lib70
1 files changed, 70 insertions, 0 deletions
diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib
index f7726b3e..0af97497 100755
--- a/client/engine/Disk.lib
+++ b/client/engine/Disk.lib
@@ -1132,6 +1132,41 @@ echo $PARTS | cut -sf5- -d" "
#/**
+# ogLockDisk int_ndisk
+#@brief Genera un fichero de bloqueo para un disco en uso exlusivo.
+#@param int_ndisk nº de orden del disco
+#@return (nada)
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
+#@note El fichero de bloqueo se localiza en \c /var/lock/disk, siendo \c disk el dispositivo del disco, sustituyendo el carácter "/" por "-".
+#@version 1.1.0 - Primera versión para OpenGnSys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2016-04-07
+#*/ ##
+function ogLockDisk ()
+{
+# Variables locales
+local DISK LOCKFILE
+
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk" \
+ "$FUNCNAME 1"
+ return
+fi
+# Error si no se recibe 1 parámetro.
+[ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+
+# Obtener partición.
+DISK="$(ogDiskToDev $1)" || return $?
+
+# Crear archivo de bloqueo exclusivo.
+LOCKFILE="/var/lock/lock${DISK//\//-}"
+touch $LOCKFILE
+}
+
+
+#/**
# ogSetPartitionActive int_ndisk int_npartition
#@brief Establece cual es la partición activa de un disco.
#@param int_ndisk nº de orden del disco
@@ -1462,6 +1497,41 @@ ogSetPartitionType $1 $2 $NEWTYPE
#/**
+# ogUnlockDisk int_ndisk
+#@brief Elimina el fichero de bloqueo para un disco.
+#@param int_ndisk nº de orden del disco
+#@return (nada)
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
+#@note El fichero de bloqueo se localiza en \c /var/lock/disk, siendo \c disk el dispositivo del disco, sustituyendo el carácter "/" por "-".
+#@version 1.1.0 - Primera versión para OpenGnSys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2016-04-08
+#*/ ##
+function ogUnlockDisk ()
+{
+# Variables locales
+local DISK LOCKFILE
+
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk" \
+ "$FUNCNAME 1"
+ return
+fi
+# Error si no se recibe 1 parámetro.
+[ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+
+# Obtener partición.
+DISK="$(ogDiskToDev $1)" || return $?
+
+# Borrar archivo de bloqueo exclusivo.
+LOCKFILE="/var/lock/lock${DISK//\//-}"
+rm -f $LOCKFILE
+}
+
+
+#/**
# ogUpdatePartitionTable
#@brief Fuerza al kernel releer la tabla de particiones de los discos duros
#@param no requiere