diff options
Diffstat (limited to 'client/engine/FileSystem.lib')
-rwxr-xr-x | client/engine/FileSystem.lib | 65 |
1 files changed, 48 insertions, 17 deletions
diff --git a/client/engine/FileSystem.lib b/client/engine/FileSystem.lib index 1219f832..e29baf99 100755 --- a/client/engine/FileSystem.lib +++ b/client/engine/FileSystem.lib @@ -486,6 +486,43 @@ test -n "$(ogMount "$1" "$2")" #/** +# ogIsLocked int_ndisk int_npartition +#@brief Comprueba si una partición está bloqueada por una operación de uso exclusivo. +#@param int_ndisk nº de orden del disco +#@param int_npartition nº de orden de la partición +#@return Código de salida: 0 - bloqueado, 1 - sin bloquear o error. +#@note El fichero de bloqueo se localiza en \c /var/lock/part, siendo \c part el dispositivo de la partición, sustituyendo el carácter "/" por "-". +#@version 0.9 - Primera versión para OpenGnSys. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2009-09-03 +#@version 1.0.1 - Devolver falso en caso de error. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2011-05-18 +#*/ ## +function ogIsLocked () +{ +# Variables locales +local PART LOCKFILE + +# Si se solicita, mostrar ayuda. +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition" \ + "if $FUNCNAME 1 1; then ... ; fi" + return +fi +# Falso, en caso de error. +[ $# == 2 ] || return 1 + +# Obtener partición. +PART="$(ogDiskToDev $1 $2)" || return 1 + +# Comprobar existencia del fichero de bloqueo. +LOCKFILE="/var/lock/lock${PART//\//-}" +test -f $LOCKFILE +} + + +#/** # ogIsMounted int_ndisk int_nfilesys #@brief Comprueba si un sistema de archivos está montado. #@param int_ndisk nº de orden del disco @@ -514,27 +551,23 @@ test -n "$(ogGetMountPoint $1 $2)" #/** -# ogIsLocked int_ndisk int_npartition -#@brief Comprueba si una partición está bloqueada por una operación de uso exclusivo. +# ogIsWritable int_ndisk int_nfilesys +#@brief Comprueba si un sistema de archivos está montado de lectura y escritura. #@param int_ndisk nº de orden del disco -#@param int_npartition nº de orden de la partición -#@return Código de salida: 0 - bloqueado, 1 - sin bloquear o error. -#@note El fichero de bloqueo se localiza en \c /var/lock/part, siendo \c part el dispositivo de la partición, sustituyendo el carácter "/" por "-". -#@version 0.9 - Primera versión para OpenGnSys. -#@author Ramon Gomez, ETSII Universidad de Sevilla -#@date 2009-09-03 -#@version 1.0.1 - Devolver falso en caso de error. +#@param int_nfilesys nº de orden del sistema de archivos +#@return Código de salida: 0 - lectura y escritura, 1 - solo lectura o no montado. +#@version 1.0.5 - Primera versión para OpenGnSys. #@author Ramon Gomez, ETSII Universidad de Sevilla -#@date 2011-05-18 -#*/ ## -function ogIsLocked () +#@date 2013-10-09 +#/** +function ogIsWritable () { # Variables locales -local PART LOCKFILE +local PART # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then - ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition" \ + ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_filesys" \ "if $FUNCNAME 1 1; then ... ; fi" return fi @@ -544,9 +577,7 @@ fi # Obtener partición. PART="$(ogDiskToDev $1 $2)" || return 1 -# Comprobar existencia del fichero de bloqueo. -LOCKFILE="/var/lock/lock${PART//\//-}" -test -f $LOCKFILE +test -n "$(findmnt -n -o OPTIONS $PART | awk 'BEGIN {RS=","} /^rw$/ {print}')" } |