diff options
author | Steve Kondik <steve@cyngn.com> | 2016-01-21 18:29:05 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-01-21 18:29:05 -0800 |
commit | c876665a68687d01393d085c88c38b92a5818b51 (patch) | |
tree | 4202cff6264aea743b4c11db85eb24ac9b8be771 | |
parent | 8b00f01ca8a476683512e9a28e72e9ec27ba9f40 (diff) | |
download | android_external_f2fs-tools-stable/cm-13.0-ZNH2K.tar.gz android_external_f2fs-tools-stable/cm-13.0-ZNH2K.tar.bz2 android_external_f2fs-tools-stable/cm-13.0-ZNH2K.zip |
f2fs-utils: Fix Android host utilsstable/cm-13.0-ZNH2KBstable/cm-13.0-ZNH2K
* __ANDROID__ isn't defined for host utils.
* Additionally, use the old behavior as the fallback.
Change-Id: Ic0247358fb19595a70f9dd455914bd8f3f9710e2
-rw-r--r-- | Android.mk | 2 | ||||
-rw-r--r-- | mkfs/f2fs_format.c | 17 |
2 files changed, 16 insertions, 3 deletions
@@ -98,7 +98,7 @@ LOCAL_SRC_FILES := \ mkfs/f2fs_format.c \ LOCAL_C_INCLUDES := $(common_C_INCLUDES) -LOCAL_CFLAGS := $(version_CFLAGS) +LOCAL_CFLAGS := $(version_CFLAGS) -DANDROID_HOST LOCAL_EXPORT_CFLAGS := $(version_CFLAGS) LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/mkfs LOCAL_STATIC_LIBRARIES := \ diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c index 2a1c7d7..322b938 100644 --- a/mkfs/f2fs_format.c +++ b/mkfs/f2fs_format.c @@ -697,7 +697,7 @@ static int f2fs_write_super_block(void) return 0; } -#ifndef __ANDROID__ +#if !defined(__ANDROID__) && !defined(ANDROID_HOST) static int discard_obsolete_dnode(struct f2fs_node *raw_node, u_int64_t offset) { do { @@ -786,16 +786,29 @@ static int f2fs_write_root_inode(void) return -1; } +#if defined(__ANDROID__) || defined(ANDROID_HOST) + memset(raw_node, 0xff, sizeof(struct f2fs_node)); +#endif + /* avoid power-off-recovery based on roll-forward policy */ main_area_node_seg_blk_offset = get_sb(main_blkaddr); main_area_node_seg_blk_offset += config.cur_seg[CURSEG_WARM_NODE] * config.blks_per_seg; -#ifndef __ANDROID__ +#if !defined(__ANDROID__) && !defined(ANDROID_HOST) if (discard_obsolete_dnode(raw_node, main_area_node_seg_blk_offset)) { free(raw_node); return -1; } +#else + main_area_node_seg_blk_offset *= blk_size_bytes; + + DBG(1, "\tWriting root inode (warm node), at offset 0x%08"PRIx64"\n", main_area_node_seg_blk_offset); + if (dev_write(raw_node, main_area_node_seg_blk_offset, F2FS_BLKSIZE)) { + MSG(1, "\tError: While writing the raw_node to disk!!!\n"); + free(raw_node); + return -1; + } #endif free(raw_node); |