aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-01-21 18:29:05 -0800
committerSteve Kondik <steve@cyngn.com>2016-01-21 18:29:05 -0800
commitc876665a68687d01393d085c88c38b92a5818b51 (patch)
tree4202cff6264aea743b4c11db85eb24ac9b8be771
parent8b00f01ca8a476683512e9a28e72e9ec27ba9f40 (diff)
downloadandroid_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.mk2
-rw-r--r--mkfs/f2fs_format.c17
2 files changed, 16 insertions, 3 deletions
diff --git a/Android.mk b/Android.mk
index 283eee3..9fc9f44 100644
--- a/Android.mk
+++ b/Android.mk
@@ -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);