diff options
author | Ondrej Oprala <ooprala@redhat.com> | 2012-08-09 17:34:09 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2012-08-21 19:49:36 +0200 |
commit | cf7e1b5b8fb53aef2a9103a32d6ad5ee0b595fa6 (patch) | |
tree | 3ca0676bc50e49c2efea20fb96614fb978a911be /NEWS | |
parent | fe5b5eed94213745e04fa63e212896ed1055d83e (diff) | |
download | coreutils-cf7e1b5b8fb53aef2a9103a32d6ad5ee0b595fa6.tar.xz |
du: handle bind-mounted directory cycles gracefully
Before this change, a directory cycle induced by a bind mount
would be treated as a fatal error, i.e., probable disk corruption.
However, such cycles are relatively common, and can be detected
efficiently, so now du emits a descriptive warning and arranges
to exit nonzero.
* NEWS (Bug fixes): Mention it.
* src/du.c: Include "mountlist.h".
(di_mnt): New global set.
(di_files): Rename global from di_set, now that there are two.
(fill_mount_table): New function.
(hash_ins): Add DI_SET parameter.
(process_file): Look up each dir dev/ino pair in the new set.
(main): Allocate, initialize, and free the new set.
* tests/du/bind-mount-dir-cycle: Add a test for the fix.
* tests/Makefile.am (TESTS): Add it.
* THANKS.in: Update.
This implements the proposal in http://bugs.gnu.org/11844.
Originally reported in http://bugs.debian.org/563254 by Alan Jenkins
and more recently as http://bugzilla.redhat.com/836557
Improved by: Jim Meyering
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -2,6 +2,13 @@ GNU coreutils NEWS -*- outline -*- * Noteworthy changes in release ?.? (????-??-??) [?] +** Bug fixes + + du no longer emits a "disk-corrupted"-style diagnostic when it detects + a directory cycle that is due to a bind-mounted directory. Instead, + it detects this precise type of cycle, diagnoses it as such and + eventually exits nonzero. + * Noteworthy changes in release 8.19 (2012-08-20) [stable] |