diff options
author | Andrew Warshall <warshall@99main.com> | 2012-11-04 16:41:15 -0800 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2012-11-04 16:55:55 -0800 |
commit | 613bcb6205cf2b64d835c19074c5a7e7c6cb99eb (patch) | |
tree | cd2640bc7e305c5e51b7115a96ecaafdc60d2679 /lib/mountlist.c | |
parent | 0dbbe3f55352241d290403577dfebed802d6fd9a (diff) | |
download | gnulib-613bcb6205cf2b64d835c19074c5a7e7c6cb99eb.tar.gz |
mountlist: do not classify a bind-mounted dir entry as "dummy"
* lib/mountlist.c (ME_DUMMY_0): Rename from ME_DUMMY, but omit
the "none"-testing clause.
(ME_DUMMY) [MOUNTED_GETMNTENT1]: New macro to encapsulate the
exception for bind-mounted directories.
Copyright-paperwork-exempt: Yes
Diffstat (limited to 'lib/mountlist.c')
-rw-r--r-- | lib/mountlist.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/lib/mountlist.c b/lib/mountlist.c index 67154b88d8..a9a9f2c7fa 100644 --- a/lib/mountlist.c +++ b/lib/mountlist.c @@ -149,16 +149,27 @@ #undef opendir #undef closedir -#ifndef ME_DUMMY -# define ME_DUMMY(Fs_name, Fs_type) \ - (strcmp (Fs_type, "autofs") == 0 \ - || strcmp (Fs_type, "none") == 0 \ - || strcmp (Fs_type, "proc") == 0 \ - || strcmp (Fs_type, "subfs") == 0 \ - /* for NetBSD 3.0 */ \ - || strcmp (Fs_type, "kernfs") == 0 \ - /* for Irix 6.5 */ \ - || strcmp (Fs_type, "ignore") == 0) +#define ME_DUMMY_0(Fs_name, Fs_type) \ + (strcmp (Fs_type, "autofs") == 0 \ + || strcmp (Fs_type, "proc") == 0 \ + || strcmp (Fs_type, "subfs") == 0 \ + /* for NetBSD 3.0 */ \ + || strcmp (Fs_type, "kernfs") == 0 \ + /* for Irix 6.5 */ \ + || strcmp (Fs_type, "ignore") == 0) + +/* Historically, we have marked as "dummy" any file system of type "none", + but now that programs like du need to know about bind-mounted directories, + we grant an exception to any with "bind" in its list of mount options. + I.e., those are *not* dummy entries. */ +#ifdef MOUNTED_GETMNTENT1 +# define ME_DUMMY(Fs_name, Fs_type, Fs_ent) \ + (ME_DUMMY_0 (Fs_name, Fs_type) \ + || (strcmp (Fs_type, "none") == 0 \ + && !hasmntopt (Fs_ent, "bind"))) +#else +# define ME_DUMMY(Fs_name, Fs_type) \ + (ME_DUMMY_0 (Fs_name, Fs_type) || strcmp (Fs_type, "none") == 0) #endif #ifdef __CYGWIN__ |