summaryrefslogtreecommitdiff
path: root/cmds-filesystem.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmds-filesystem.c')
-rw-r--r--cmds-filesystem.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/cmds-filesystem.c b/cmds-filesystem.c
index 76ea82ed..90eccf70 100644
--- a/cmds-filesystem.c
+++ b/cmds-filesystem.c
@@ -993,32 +993,35 @@ static int defrag_callback(const char *fpath, const struct stat *sb,
int typeflag, struct FTW *ftwbuf)
{
int ret = 0;
- int e = 0;
+ int err = 0;
int fd = 0;
if ((typeflag == FTW_F) && S_ISREG(sb->st_mode)) {
if (defrag_global_verbose)
printf("%s\n", fpath);
fd = open(fpath, O_RDWR);
- if (fd < 0)
+ if (fd < 0) {
+ err = errno;
goto error;
+ }
ret = do_defrag(fd, defrag_global_fancy_ioctl, &defrag_global_range);
- e = errno;
close(fd);
- if (ret && e == ENOTTY && defrag_global_fancy_ioctl) {
+ if (ret && errno == ENOTTY && defrag_global_fancy_ioctl) {
error("defrag range ioctl not "
"supported in this kernel, please try "
"without any options.");
defrag_global_errors++;
return ENOTTY;
}
- if (ret)
+ if (ret) {
+ err = errno;
goto error;
+ }
}
return 0;
error:
- error("defrag failed on %s: %s", fpath, strerror(e));
+ error("defrag failed on %s: %s", fpath, strerror(err));
defrag_global_errors++;
return 0;
}