#include <sys/types.h>
#endif
+#include <ext4.h>
#include "../blockdev/linux/ext4_filedev.h"
#include "../blockdev/windows/io_raw.h"
-#include <ext4.h>
-#include <errno.h>
static int winsock_init(void);
static void winsock_fini(void);
}
rc = ext4_mount(dev_name, mount_point);
+ if (rc != EOK)
+ return rc;
+
+ rc = ext4_recover(mount_point);
+ if (rc != EOK && rc != ENOTSUP)
+ return rc;
+
+ rc = ext4_journal_start(mount_point);
+ if (rc != EOK)
+ return rc;
+
if (cache_wb)
ext4_cache_write_back(mount_point, 1);
return rc;
int _umount(char *p)
{
char mount_point[32];
+ int rc;
if (sscanf(p, "%s", mount_point) != 1) {
printf("Param list error\n");
if (cache_wb)
ext4_cache_write_back(mount_point, 0);
- return ext4_umount(mount_point);
+ rc = ext4_journal_stop(mount_point);
+ if (rc != EOK)
+ return rc;
+
+ rc = ext4_umount(mount_point);
+ if (rc != EOK)
+ return rc;
+
+ return rc;
}
int _mount_point_stats(char *p)
static char *entry_to_str(uint8_t type)
{
switch (type) {
- case EXT4_DIRENTRY_UNKNOWN:
- return "[UNK] ";
- case EXT4_DIRENTRY_REG_FILE:
- return "[FIL] ";
- case EXT4_DIRENTRY_DIR:
- return "[DIR] ";
- case EXT4_DIRENTRY_CHRDEV:
- return "[CHA] ";
- case EXT4_DIRENTRY_BLKDEV:
- return "[BLK] ";
- case EXT4_DIRENTRY_FIFO:
- return "[FIF] ";
- case EXT4_DIRENTRY_SOCK:
- return "[SOC] ";
- case EXT4_DIRENTRY_SYMLINK:
- return "[SYM] ";
+ case EXT4_DE_UNKNOWN:
+ return "[unk] ";
+ case EXT4_DE_REG_FILE:
+ return "[fil] ";
+ case EXT4_DE_DIR:
+ return "[dir] ";
+ case EXT4_DE_CHRDEV:
+ return "[cha] ";
+ case EXT4_DE_BLKDEV:
+ return "[blk] ";
+ case EXT4_DE_FIFO:
+ return "[fif] ";
+ case EXT4_DE_SOCK:
+ return "[soc] ";
+ case EXT4_DE_SYMLINK:
+ return "[sym] ";
default:
break;
}