summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrockiec <rockiec@codeaurora.org>2012-12-28 17:34:51 +0800
committerAdnan Begovic <adnan@cyngn.com>2015-10-07 17:39:54 -0700
commit773d51c3557bee51c116d4cecd8c720da21c8f10 (patch)
tree0e6df5766514d526f989c08d9ef3ca2fe13fff0b
parente00bc4e14c6388ff4b49ea2cb4eda3c316691ee5 (diff)
downloadandroid_external_fsck_msdos-773d51c3557bee51c116d4cecd8c720da21c8f10.tar.gz
android_external_fsck_msdos-773d51c3557bee51c116d4cecd8c720da21c8f10.tar.bz2
android_external_fsck_msdos-773d51c3557bee51c116d4cecd8c720da21c8f10.zip
Do not return error if there is no FAT after fresh format
After format all clusters are free, so don't return error. This fixes fsck fail on clean FAT16 partitions. Change-Id: Ib21d000eaad1f84d6182c19cbb81cd3a1d069211
-rw-r--r--fat.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fat.c b/fat.c
index 05454a6..73725be 100644
--- a/fat.c
+++ b/fat.c
@@ -889,8 +889,12 @@ checklost(int dosfs, struct bootblock *boot)
struct cluster_chain_descriptor *fat ;
fat = RB_MIN(FSCK_MSDOS_CACHE,&rb_root);
if(!fat){
- fsck_err("%s:rb_root tree is empty\n",__func__);
- return FSFATAL;
+ fsck_info("%s:rb_root tree is empty\n",__func__);
+ //After format FAT16,nothing left
+ if(boot->ClustMask & CLUST16_MASK)
+ return FSOK;
+ else
+ return FSFATAL;
}
while(fat){
if(fat->flag & FAT_USED){