du: don't count duplicate arguments. Closes 5288
authorRon Yorston <rmy@pobox.com>
Sat, 16 Feb 2019 10:22:31 +0000 (10:22 +0000)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 19 Feb 2019 16:08:39 +0000 (17:08 +0100)
Since coreutils 8.6 (2010-10-15) du no longer counts duplicate arguments.

Revert the relevant part of commit 618a3027ed (du: fix "du /dir /dir"
case).

function                                             old     new   delta
du_main                                              302     297      -5
reset_ino_dev_hashtable                               78       -     -78
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-83)             Total: -83 bytes

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
coreutils/du.c
libbb/inode_hash.c

index 6d737fbfbdf3ac26cdae2f5ec296dcb4edbc3c7d..d14d9e4eaba68ef8ffe4058558b687a3611d4441 100644 (file)
@@ -290,11 +290,11 @@ int du_main(int argc UNUSED_PARAM, char **argv)
        total = 0;
        do {
                total += du(*argv);
-               /* otherwise du /dir /dir won't show /dir twice: */
-               reset_ino_dev_hashtable();
                G.slink_depth = slink_depth_save;
        } while (*++argv);
 
+       if (ENABLE_FEATURE_CLEAN_UP)
+               reset_ino_dev_hashtable();
        if (opt & OPT_c_total)
                print(total, "total");
 
index 4142813e38c06cc9b108a64cbc218c3f13ddd686..a125244ca72f1d012adc1ee63120cfb6fc1362ed 100644 (file)
@@ -77,7 +77,7 @@ void FAST_FUNC add_to_ino_dev_hashtable(const struct stat *statbuf, const char *
        ino_dev_hashtable[i] = bucket;
 }
 
-#if ENABLE_DU || ENABLE_FEATURE_CLEAN_UP
+#if ENABLE_FEATURE_CLEAN_UP
 /* Clear statbuf hash table */
 void FAST_FUNC reset_ino_dev_hashtable(void)
 {