From 86260e65c5089ae8cd57b0e97e0fd060513c25d7 Mon Sep 17 00:00:00 2001 From: Andrew Gildfind Date: Thu, 1 Feb 2001 05:05:22 +0000 Subject: [PATCH] Don't run xfsdb if we're not root. --- src/fill2fs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/fill2fs b/src/fill2fs index cf692ae7..6fbc89e7 100755 --- a/src/fill2fs +++ b/src/fill2fs @@ -73,7 +73,7 @@ use File::Basename; chomp($os = `uname`); # -# fsinfo: get filesystem info put it into the global namespace, assigns: +# fsinfo: get filesystem info put it into the global namespace, initialises: # $dev, $type, $blocks, $used, $avail, $cap, $mnt, $mnt_options # $fsblocks, $fsblocksize, $agblocks, $agcount, $imax_pct, $logblocks # $logstart, $internal @@ -101,20 +101,22 @@ sub fsinfo { @mtab = split(/ +/); $mnt_options = $mtab[3]; - # xfs_db: read only, use the default superblock, print everything - die("Error: $progname: can't read device: \"$dev\"\n") if (! -r $dev); - $_=`xfs_db -r -c sb -c p $dev`; - # multiline matching ^$ refers to individual lines... - /^dblocks = (\d+)$/m; $fsblocks=$1; - /^blocksize = (\d+)$/m; $fsblocksize=$1; - /^agblocks = (\d+)$/m; $agblocks=$1; - /^agcount = (\d+)$/m; $agcount=$1; - /^imax_pct = (\d+)$/m; $imax_pct=$1; - /^logblocks = (\d+)$/m; $logblocks=$1; - /^logstart = (\d+)$/m; $logstart=$1; - $internal = $logstart > 0 ? " (internal)" : ""; - - $verbose && print STDERR <<"EOF" + # if we're running as root run xfs_db on the filesystem + if ($> == 0) { + # xfs_db: read only, use the default superblock, print everything + die("Error: $progname: can't read device: \"$dev\"\n") if (! -r $dev); + $_=`xfs_db -r -c sb -c p $dev`; + # multiline matching ^$ refers to individual lines... + /^dblocks = (\d+)$/m; $fsblocks=$1; + /^blocksize = (\d+)$/m; $fsblocksize=$1; + /^agblocks = (\d+)$/m; $agblocks=$1; + /^agcount = (\d+)$/m; $agcount=$1; + /^imax_pct = (\d+)$/m; $imax_pct=$1; + /^logblocks = (\d+)$/m; $logblocks=$1; + /^logstart = (\d+)$/m; $logstart=$1; + $internal = $logstart > 0 ? " (internal)" : ""; + + $verbose && print STDERR <<"EOF" Filesystem information: type=$type; device=$dev mount point=$mnt; mount options=$mnt_options @@ -122,6 +124,7 @@ Filesystem information: total filesystem size (fs blocks)=$fsblocks; fs block size=$fsblocksize; imax_pct=$imax_pct agcount=$agcount; agblocks=$agblocks; logblocks=$logblocks; logstart=$logstart$internal EOF + } } -- 2.47.3