diff options
author | rockiec <rockiec@codeaurora.org> | 2013-01-06 19:28:35 +0800 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2014-11-04 08:23:20 -0700 |
commit | 112b49fd9ce23d5da9510f74762749efbd558caa (patch) | |
tree | 5d9fd5fcc7be7c3412beda1101b5d5563508f60e /dir.c | |
parent | 48e6511bc992aff05c3458b73fc9684d675d3aff (diff) | |
download | android_external_fsck_msdos-112b49fd9ce23d5da9510f74762749efbd558caa.tar.gz android_external_fsck_msdos-112b49fd9ce23d5da9510f74762749efbd558caa.tar.bz2 android_external_fsck_msdos-112b49fd9ce23d5da9510f74762749efbd558caa.zip |
Enable files with invalid end cluster to be deleted
This allow use to remove some damaged files
Change-Id: If7d2ef06a6f47298cd7be48982a78d25c5be8231
Diffstat (limited to 'dir.c')
-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 */ |