du -A / -B options [Re: zfs quota question]

Giorgos Keramidas keramida at freebsd.org
Tue Nov 4 18:31:59 PST 2008


On Tue, 4 Nov 2008 23:42:49 +0100, Max Laier <max at love2party.net> wrote:
> Hi again,
>
> On Saturday 01 November 2008 21:14:42 I wrote:
>> a thread on freebsd-stable@ [1] about problems with du(1) and compressed
>> zfs filesystems got me looking for a possible solution.  Attached is a diff
>> for du(1) that adds two new options:
>>
>>  -A to display the apparent size of the file instead of the used blocks.
>>  -B bsize to specify a custom blocksize.  In particular one <512byte
>>
>> The GNU du(1) has --apparent-size for -A, but we don't like long options.
>> That's not to say that it couldn't be added for script compat. -B is
>> probably not that interesting, but it can be helpful and came for free.
>
> Attached is an updated patch.  This refines the -B option to something more
> useful (and fixes a bug in the original patch).
>
> From the man page:
>
>      -B blocksize
>              Calculate block counts in blocksize byte blocks.  This is differ-
>              ent from the -k, -m options or setting BLOCKSIZE and gives an
>              estimate of how many space the examined file hierachy would
>              require on a filesystem with the given blocksize.  Unless in -A
>              mode, blocksize is rounded up to the next multiple of 512.

That looks nice!  With a small fix (``how _much_ space'') I like the
idea a lot :)

The patch fails to apply on a recent /head snapshot of du though:

: keramida at kobe:/ws/bsd/src/usr.bin/du$ patch -p0 -i ~/du.AB.diff
: [...]
: The text leading up to this was:
: --------------------------
: |Index: du.c
: |===================================================================
: |--- du.c       (revision 184656)
: |+++ du.c       (working copy)
: --------------------------
: Patching file du.c using Plan A...
: Hunk #1 failed at 79.
: Hunk #2 failed at 99.
: Hunk #3 failed at 159.
: Hunk #4 succeeded at 215 (offset -2 lines).
: Hunk #5 failed at 236.
: Hunk #6 failed at 259.
: Hunk #7 failed at 292.
: Hunk #8 failed at 317.
: Hunk #9 succeeded at 465 (offset -5 lines).
: Hunk #10 succeeded at 482 (offset -2 lines).
: 7 out of 10 hunks failed--saving rejects to du.c.rej
: done
: keramida at kobe:/ws/bsd/src/usr.bin/du$

Can you please refresh and repost it?



More information about the freebsd-hackers mailing list