#/**
#         ogr ExtendFs int_ndisk int_nfilesys
#@brief   Extiende un sistema de archivos al tamaño de su partición.
#@param   int_ndisk     nº de orden del disco o volumen
#@param   int_nfilesys  nº de orden del sistema de archivos
#@return  (nada)
#@exception OG_ERR_FORMAT   Formato incorrecto.
#@exception OG_ERR_NOTFOUND Sisitema de archivos no corresponden con un dispositivo.
#@exception OG_ERR_FILESYS  Sistema de archivos desconocido o no accesible.
#@note    Requisitos: *resize*
#@version 0.1 - Integración para OpenGnSys.
#@author  Antonio J. Doblas Viso, Universidad de Málaga
#@date    2008-10-27
#@version 0.1 -  Integracion para Opengnsys  -  EAC:   EnlargeFileSystem() en ATA.lib
#@author  Antonio J. Doblas Viso. Universidad de Malaga
#@date    2008-10-27
#@version 0.9 - Primera adaptacion para OpenGNSys.
#@author  Ramon Gomez, ETSII Universidad de Sevilla
#@date    2009-09-23
#*/ ##
# Variables locales.
local DEV PROG PARAMS

# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
    ogr Help "$FUNCNAME" "$FUNCNAME int_ndisk int_nfilesys" \
           "$FUNCNAME 1 1"
    return
fi
# Error si no se reciben 2 parámetros.
[ $# == 2 ] || ogr RaiseError $OG_ERR_FORMAT || return $?

# Montar sistema de archivos.
DEV=$(ogr DiskToDev $1 $2) || return $?
ogr Unmount $1 $2 2>/dev/null
# Redimensionar al tamano máximo según el tipo de sitema de archivos.
TYPE=$(ogr GetFsType $1 $2)
case "$TYPE" in
    EXT[234])   PROG="resize2fs"; PARAMS="-f" ;;
    REISERFS)   PROG="resize_reiserfs"; PARAMS="-f" ;;
    NTFS)       PROG="ntfsresize"; PARAMS="<<<\"y\" -f" ;;
    *)          ogr RaiseError $OG_ERR_FILESYS "$1 $2 $TYPE"
                return $? ;;
esac
# Error si el sistema de archivos está montado o bloqueado.
if ogr IsMounted $1 $2; then
    ogr RaiseError $OG_ERR_FILESYS "$1 $2"       # Indicar nuevo error
    return $?
fi
if ogr IsLocked $1 $2; then
    ogr RaiseError $OG_ERR_LOCKED "$1 $2"
    return $?
fi
# Redimensionar en modo uso exclusivo.
ogr Lock $1 $2
eval $PROG $PARAMS $DEV &>/dev/null
ERRCODE=$?
case $ERRCODE in
    0)    ;;
    127)  ogr RaiseError $OG_ERR_NOTEXEC "$PROG" ;;
    *)    ogr RaiseError $OG_ERR_FILESYS "$1 $2" ;;
esac
ogr Unlock $1 $2
return $ERRCODE
