GNU bug report logs -
#10293
[PATCH] du -x should not count files in other file systems
Previous Next
Reported by: Paul Eggert <eggert <at> cs.ucla.edu>
Date: Tue, 13 Dec 2011 19:23:01 UTC
Severity: normal
Tags: patch
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Paul Eggert wrote:
> While looking into Bug#10282 I noticed that 'du' is mishandling
> the -x option. It relies on FTS_XDEV to not cross file system boundaries,
> but FTS_XDEV visits the root of the other file system, causing
> 'du' to output a line "0 X" where X is the mount point of the
> other file system. This doesn't sound right, since X is in a
> different file system and du -x is supposed to ignore files in
> other file systems. Also, it disagrees with Solaris 10 du
> (at least).
>
> Here's a proposed patch. The bug is absent from coreutils 5.0
> and present in 5.2.0. I'm guessing from the NEWS files that
> it was introduced in 5.1.0 but 5.1.0 is no longer available
> at ftp.gnu.org so this isn't trivial for me to check.
>
> du: -x should not count files in other file systems
> * NEWS: Document fix.
> * src/du.c (process_file): Don't count files in different file
> systems if -x is given.
> * tests/du/one-file-system: Test for this bug.
Thanks for noticing/fixing that. The fix looks fine.
Please include in the commit log the SHA1 that probably induced the bug.
Also, a small improvement to the test script below:
> diff --git a/NEWS b/NEWS
...
> diff --git a/tests/du/one-file-system b/tests/du/one-file-system
...
> +# "du -xL" reported a zero count for a file in a different file system,
> +# instead of ignoring it.
> +du -xL d > u || fail=1
> +sed 's/^[0-9][0-9]* //' u > out1
> +cat <<\EOF > exp1 || fail=1
> +d
> +EOF
The three lines above can be replaced by this one:
echo d > exp1 || fail=1
> +compare exp1 out1 || fail=1
> +
> Exit $fail
This bug report was last modified 13 years and 215 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.