diff options
author | rockiec <rockiec@codeaurora.org> | 2013-01-06 19:28:35 +0800 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-10-07 17:39:54 -0700 |
commit | ed2d73cb859b7d7fc6d7cfae57462df6052df7c6 (patch) | |
tree | 5d9fd5fcc7be7c3412beda1101b5d5563508f60e | |
parent | 773d51c3557bee51c116d4cecd8c720da21c8f10 (diff) | |
download | android_external_fsck_msdos-ed2d73cb859b7d7fc6d7cfae57462df6052df7c6.tar.gz android_external_fsck_msdos-ed2d73cb859b7d7fc6d7cfae57462df6052df7c6.tar.bz2 android_external_fsck_msdos-ed2d73cb859b7d7fc6d7cfae57462df6052df7c6.zip |
Enable files with invalid end cluster to be deleted
This allow use to remove some damaged files
Change-Id: If7d2ef06a6f47298cd7be48982a78d25c5be8231
-rw-r--r-- | dir.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -897,13 +897,16 @@ readDosDirSection(int f, struct bootblock *boot, else{ fsck_warn("can't find cluster chain(head:0x%x) of file:%s \n",dirent.head,fullpath(&dirent)); if (vallfn || invlfn) { - fsck_warn("Invalid long directory deleted\n"); + fsck_warn("Invalid long directory\n"); mod |= removede(f, boot, fat,invlfn ? invlfn : vallfn, p,invlfn ? invcl : valcl, -1, 0,fullpath(dir), 3); } else { - fsck_warn("Invalid short directory deleted\n"); - *p = SLOT_DELETED; + fsck_warn("Invalid short directory\n"); + if(ask(1, "Delete")){ + *p = SLOT_DELETED; + mod |= THISMOD|FSDIRMOD; + }else + mod |= FSERROR; } - return FSDIRMOD; } } vallfn = NULL; /* not used any longer */ |