X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=fs_test%2Flwext4_server.c;h=365880151c5c40a95156a5bd47de2e7c37f7a340;hb=45764c06a8ed8b23c5e0961976d7deefd57fcd73;hp=12eb4c572c5fa3c534c89f87210a09e155ed8622;hpb=529a2b7118a139f632ca60220467c4f3d4315ad2;p=lwext4.git diff --git a/fs_test/lwext4_server.c b/fs_test/lwext4_server.c index 12eb4c5..3658801 100644 --- a/fs_test/lwext4_server.c +++ b/fs_test/lwext4_server.c @@ -48,11 +48,10 @@ #include #endif +#include #include "../blockdev/linux/ext4_filedev.h" #include "../blockdev/windows/io_raw.h" -#include -#include 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; }