fs-lib/fs-lib.sh: removed test mounting of btrfs and xfs

mount/umount check only costs time and we fail later anyway.
mount can take very long on large filesystems. Better fail on the real
mount.
master
Harald Hoyer 2012-06-22 15:16:55 +02:00
parent 28a6eef3be
commit b65bde04e7
1 changed files with 4 additions and 54 deletions

View File

@ -80,63 +80,13 @@ fsck_able() {
# note: all drivers inherit: _drv _fop _dev # note: all drivers inherit: _drv _fop _dev


fsck_drv_xfs() { fsck_drv_xfs() {
local _ret # xfs fsck is not necessary... Either it mounts or not

return 0
# fs must be cleanly mounted (and umounted) first, before attempting any
# xfs tools - if this works, nothing else should be needed
# note, that user is always dropped into the shell, if the filesystem is
# not mountable or if -f flag is found among _fop
mkdir -p /tmp/.xfs

info "trying to mount $_dev"
if mount -t xfs ${_fsopts+-o $_fsopts} "$_dev" "/tmp/.xfs" >/dev/null 2>&1; then
_ret=0
info "xfs: $_dev is clean"
umount "$_dev" >/dev/null 2>&1
else
_ret=4
warn "*** $_dev is unmountable"
fi
if [ $_ret -gt 0 ] || strstr "$_fop" "-f"; then
warn "*** Dropping you to a shell. You have"
warn "*** xfs_repair and xfs_check (xfs_db) available."
warn "*** Note that if xfs didn't mount properly, it's"
warn "*** probably pretty serious condition."
emergency_shell -n "(Repair filesystem)"
fi

rm -r /tmp/.xfs
return $_ret
} }


fsck_drv_btrfs() { fsck_drv_btrfs() {
local _ret # btrfs fsck is not necessary... Either it mounts or not

return 0
# fs must be cleanly mounted (and umounted) first, before attempting any
# btrfs tools - if this works, nothing else should be needed
# note, that user is always dropped into the shell, if the filesystem is
# not mountable or if -f flag is found among _fop
mkdir -p /tmp/.btrfs

info "trying to mount $_dev"
if mount -t btrfs ${_fsopts+-o $_fsopts} "$_dev" "/tmp/.btrfs" >/dev/null 2>&1; then
_ret=0
info "btrfs: $_dev is clean"
umount "$_dev" >/dev/null 2>&1
else
_ret=4
warn "*** $_dev is unmountable"
fi
if [ $_ret -gt 0 ] || strstr "$_fop" "-f"; then
warn "*** Dropping you to a shell. You have"
warn "*** btrfsck available."
warn "*** Note that if btrfs didn't mount properly, it's"
warn "*** probably pretty serious condition."
emergency_shell -n "(Repair filesystem)"
fi

rm -r /tmp/.btrfs
return $_ret
} }