diff options
author | ramon <ramongomez@us.es> | 2016-04-08 09:36:48 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2016-04-08 09:36:48 +0000 |
commit | 01d425390ced0e20b320630619ea3dff749f4563 (patch) | |
tree | 38e4c212a781429ee8955d0ca6b7649cdb378b56 /client/engine/Disk.lib | |
parent | 492bf9cfb8ab1043da8f65e9576aa534a1eeedb5 (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/Disk.lib')
-rwxr-xr-x | client/engine/Disk.lib | 70 |
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 |