summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrockiec <rockiec@codeaurora.org>2013-01-06 19:28:35 +0800
committerAdnan Begovic <adnan@cyngn.com>2015-10-07 17:39:54 -0700
commited2d73cb859b7d7fc6d7cfae57462df6052df7c6 (patch)
tree5d9fd5fcc7be7c3412beda1101b5d5563508f60e
parent773d51c3557bee51c116d4cecd8c720da21c8f10 (diff)
downloadandroid_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.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/dir.c b/dir.c
index c3a485a..2d52492 100644
--- a/dir.c
+++ b/dir.c
@@ -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 */