summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2019-02-13 11:12:30 -0500
committerTavian Barnes <tavianator@tavianator.com>2019-03-06 23:01:19 -0800
commit0689a4a16f5e80e0c2368f4a68c69ce5f2fdc038 (patch)
tree60301a8961c72698b44291ecb0473e24c61f923a /eval.c
parent7fc960a23eab7fce9f5e0666b1a9b3f5eae832af (diff)
downloadbfs-0689a4a16f5e80e0c2368f4a68c69ce5f2fdc038.tar.xz
bftw: Work around d_type being wrong for bind mounts on Linux
C.f. https://savannah.gnu.org/bugs/?54913 C.f. https://lkml.org/lkml/2019/2/11/2027 Fixes https://github.com/tavianator/bfs/issues/37
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/eval.c b/eval.c
index 028b31d..bb89401 100644
--- a/eval.c
+++ b/eval.c
@@ -1400,19 +1400,26 @@ int eval_cmdline(const struct cmdline *cmdline) {
.ptr = &args,
.nopenfd = infer_fdlimit(cmdline),
.flags = cmdline->flags,
+ .mtab = cmdline->mtab,
};
for (struct root *root = cmdline->roots; root && !args.quit; root = root->next) {
if (cmdline->debug & DEBUG_SEARCH) {
fprintf(stderr,
- "bftw(\"%s\", { "
- ".callback = cmdline_callback, "
- ".ptr = &args, "
- ".nopenfd = %d, "
- ".flags = ",
- root->path,
- bftw_args.nopenfd);
+ "bftw(\"%s\", { "
+ ".callback = cmdline_callback, "
+ ".ptr = &args, "
+ ".nopenfd = %d, "
+ ".flags = ",
+ root->path,
+ bftw_args.nopenfd);
dump_bftw_flags(bftw_args.flags);
+ fprintf(stderr, ", .mtab = ");
+ if (bftw_args.mtab) {
+ fprintf(stderr, "cmdline->mtab");
+ } else {
+ fprintf(stderr, "NULL");
+ }
fprintf(stderr, " })\n");
}