%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#!/bin/sh -f
# SPDX-License-Identifier: GPL-2.0
#
# Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved.
#
OPTS=""
USAGE="Usage: xfs_info [-V] [-t mtab] [mountpoint|device|file]"
# Try to find a loop device associated with a file. We only want to return
# one loopdev (multiple loop devices can attach to a single file) so we grab
# the last line and return it if it's actually a block device.
try_find_loop_dev_for_file() {
local x="$(losetup -O NAME -j "$1" 2> /dev/null | tail -n 1)"
test -b "$x" && echo "$x"
}
while getopts "t:V" c
do
case $c in
t) OPTS="-t $OPTARG" ;;
V) xfs_spaceman -p xfs_info -V
status=$?
exit $status
;;
*) echo $USAGE 1>&2
exit 2
;;
esac
done
set -- extra "$@"
shift $OPTIND
case $# in
1)
arg="$1"
# See if we can map the arg to a loop device
loopdev="$(try_find_loop_dev_for_file "${arg}")"
test -n "${loopdev}" && arg="${loopdev}"
# If we find a mountpoint for the device, do a live query;
# otherwise try reading the fs with xfs_db.
if mountpt="$(findmnt -t xfs -f -n -o TARGET "${arg}" 2> /dev/null)"; then
xfs_spaceman -p xfs_info -c "info" $OPTS "${mountpt}"
status=$?
else
xfs_db -p xfs_info -c "info" $OPTS "${arg}"
status=$?
fi
;;
*) echo $USAGE 1>&2
exit 2
;;
esac
exit $status