#include "log.h"
#include "osl.h"
-#include "error.h"
#include "util.h"
#include "osl_core.h"
#include "fsck.cmdline.h"
FSCK_ERROR(CHDIR, "could not change directory"), \
FSCK_ERROR(OPENDIR, "could not open directory"),
+#define FSCK_ERROR_BIT 29
#define FSCK_ERROR(num, txt) E_FSCK_ ## num
enum {
FSCK_DUMMY = (1 << FSCK_ERROR_BIT) - 1,
return write_all(fd, buf, &len);
}
-/**
- * Paraslash's version of malloc().
+/*
+ * Wrapper for malloc().
*
* \param size The desired new size.
*
}
/**
- * Paraslash's version of calloc().
+ * Allocate memory and fill with zeros.
*
* \param size The desired new size.
*
}
/**
- * Paraslash's version of strdup().
+ * Save version of strdup().
*
* \param s The string to be duplicated.
*
NOTICE_LOG("removing unreferenced objects from data files\n");
/* first make a copy of the index */
- ret = osl_open(old_idx_filename, O_WRONLY | O_CREAT | O_EXCL, 0644);
+ DEBUG_LOG("opening %s\n", old_idx_filename);
+ ret = osl_open(old_idx_filename, O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (ret < 0)
goto out_free;
fd = ret;
ret = dump_table(conf.dump_dir_arg, &desc);
out:
if (ret < 0)
- ERROR_LOG("failed to check table %s\n", table_name);
+ ERROR_LOG("failed to check table %s: %s\n", table_name,
+ fsck_strerror(-ret));
else
NOTICE_LOG("successfully checked table %s\n", table_name);
return ret;