summaryrefslogtreecommitdiff
path: root/cmds-filesystem.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmds-filesystem.c')
-rw-r--r--cmds-filesystem.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/cmds-filesystem.c b/cmds-filesystem.c
index b4727c27..aa361d67 100644
--- a/cmds-filesystem.c
+++ b/cmds-filesystem.c
@@ -681,7 +681,13 @@ static int cmd_defrag(int argc, char **argv)
if (recursive) {
struct stat st;
- fstat(fd, &st);
+ if (fstat(fd, &st)) {
+ fprintf(stderr, "ERROR: failed to stat %s - %s\n",
+ argv[i], strerror(errno));
+ defrag_global_errors++;
+ close_file_or_dir(fd, dirstream);
+ continue;
+ }
if (S_ISDIR(st.st_mode)) {
ret = nftw(argv[i], defrag_callback, 10,
FTW_MOUNT | FTW_PHYS);