test_lwext4: add journaling to generic test module
[lwext4.git] / fs_test / lwext4_server.c
index 12eb4c572c5fa3c534c89f87210a09e155ed8622..365880151c5c40a95156a5bd47de2e7c37f7a340 100644 (file)
 #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);
@@ -413,6 +412,17 @@ int _mount(char *p)
        }
 
        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;
@@ -421,6 +431,7 @@ int _mount(char *p)
 int _umount(char *p)
 {
        char mount_point[32];
+       int rc;
 
        if (sscanf(p, "%s", mount_point) != 1) {
                printf("Param list error\n");
@@ -430,7 +441,15 @@ int _umount(char *p)
        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)
@@ -1107,22 +1126,22 @@ int _stats_check(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;
        }