xfs
[Top] [All Lists]

Re: [PATCH] xfs_df: a df(1)-like command to list per-ag block and inode

To: "Josef 'Jeff' Sipek" <jeffpc@xxxxxxxxxxxxxx>
Subject: Re: [PATCH] xfs_df: a df(1)-like command to list per-ag block and inode usage
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Thu, 10 Sep 2009 19:21:39 -0400
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1252622786-7653-1-git-send-email-jeffpc@xxxxxxxxxxxxxx>
References: <1252622786-7653-1-git-send-email-jeffpc@xxxxxxxxxxxxxx>
User-agent: Mutt/1.5.19 (2009-01-05)
On Thu, Sep 10, 2009 at 06:46:26PM -0400, Josef 'Jeff' Sipek wrote:
> +++ b/db/xfs_df.sh
> @@ -0,0 +1,144 @@
> +#!/bin/sh
> +#
> +# Copyright (c) 2007-2009 Josef 'Jeff' Sipek <jeffpc@xxxxxxxxxxxxxx>
> +#
> +# This program is free software; you can redistribute it and/or modify it
> +# under the terms of the GNU General Public License version 2 as published
> +# by the Free Software Foundation.
> +#
> +
> +status=0
> +DB_OPTS="-p xfs_df -r"
> +USAGE="Usage: xfs_df [-i] <device>|<mount>"
> +
> +while test $# -gt 1; do
> +     case "$1" in
> +             -i)
> +                     print_inodes=t
> +                     ;;
> +             *)
> +                     break
> +                     ;;
> +     esac
> +     shift
> +done
> +
> +dev="$1"

Can you use the same boilerplate code as the other wrappers for
xfs_db parsing the options and showing the usage to make things more
consistant?

Also any new tools in xfsprogs should really come with a manpage.

> +case "$print_inodes" in
> +     t)
> +             echo "AG     Inodes    IUsed    IFree    Use%"
> +
> +             tot_ino=0
> +             tot_use=0
> +             tot_fre=0
> +
> +             for ag in `seq 0 $maxagno`; do
> +                     count=`db_wrapper -c "agi $ag" -c "p count"`
> +                     freecount=`db_wrapper -c "agi $ag" -c "p freecount"`
> +
> +                     used=`expr $count - $freecount`
> +
> +                     if [ $count -gt 0 ]; then
> +                             pused=`expr $used \* 100`
> +                             pused=`expr $pused / $count`
> +                     else
> +                             pused=0
> +                     fi

Wouldn't it be much easier to implement all this in C as a new xfs_db
subcommand?

<Prev in Thread] Current Thread [Next in Thread>