diff options
Diffstat (limited to 'cmds-fi-du.c')
-rw-r--r-- | cmds-fi-du.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/cmds-fi-du.c b/cmds-fi-du.c index 7e6bb7f6..496a55b8 100644 --- a/cmds-fi-du.c +++ b/cmds-fi-du.c @@ -406,9 +406,10 @@ static int du_walk_dir(struct du_dir_ctxt *ctxt, struct rb_root *shared_extents) ret = 0; continue; } else if (ret) { + errno = -ret; fprintf(stderr, - "failed to walk dir/file: %s :%s\n", - entry->d_name, strerror(-ret)); + "failed to walk dir/file: %s : %m\n", + entry->d_name); break; } @@ -565,6 +566,7 @@ int cmd_filesystem_du(int argc, char **argv) unit_mode = get_unit_mode_from_arg(&argc, argv, 1); + optind = 0; while (1) { static const struct option long_options[] = { { "summarize", no_argument, NULL, 's'}, @@ -600,8 +602,8 @@ int cmd_filesystem_du(int argc, char **argv) for (i = optind; i < argc; i++) { ret = du_add_file(argv[i], AT_FDCWD, NULL, NULL, NULL, 1); if (ret) { - error("cannot check space of '%s': %s", argv[i], - strerror(-ret)); + errno = -ret; + error("cannot check space of '%s': %m", argv[i]); err = 1; } |