summaryrefslogtreecommitdiffstats
path: root/updater/blockimg.c
diff options
context:
space:
mode:
authorSami Tolvanen <samitolvanen@google.com>2015-06-10 18:06:49 +0200
committerAndroid Git Automerger <android-git-automerger@android.com>2015-06-10 18:06:49 +0200
commit059e391f9eac7fd2d152da79fbfac9b0bb5a2fad (patch)
tree6b3246980477918a5d27389194225864175bddda /updater/blockimg.c
parentam 1a03b400: Merge "uncrypt: Write status when it reboots to factory reset" (diff)
parentMerge "Revert "Zero blocks before BLKDISCARD"" (diff)
downloadandroid_bootable_recovery-059e391f9eac7fd2d152da79fbfac9b0bb5a2fad.tar
android_bootable_recovery-059e391f9eac7fd2d152da79fbfac9b0bb5a2fad.tar.gz
android_bootable_recovery-059e391f9eac7fd2d152da79fbfac9b0bb5a2fad.tar.bz2
android_bootable_recovery-059e391f9eac7fd2d152da79fbfac9b0bb5a2fad.tar.lz
android_bootable_recovery-059e391f9eac7fd2d152da79fbfac9b0bb5a2fad.tar.xz
android_bootable_recovery-059e391f9eac7fd2d152da79fbfac9b0bb5a2fad.tar.zst
android_bootable_recovery-059e391f9eac7fd2d152da79fbfac9b0bb5a2fad.zip
Diffstat (limited to 'updater/blockimg.c')
-rw-r--r--updater/blockimg.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/updater/blockimg.c b/updater/blockimg.c
index dfba7e420..5d0f1560c 100644
--- a/updater/blockimg.c
+++ b/updater/blockimg.c
@@ -39,6 +39,11 @@
#define BLOCKSIZE 4096
+// Set this to 0 to interpret 'erase' transfers to mean do a
+// BLKDISCARD ioctl (the normal behavior). Set to 1 to interpret
+// erase to mean fill the region with zeroes.
+#define DEBUG_ERASE 0
+
#ifndef BLKDISCARD
#define BLKDISCARD _IO(0x12,119)
#endif
@@ -1278,7 +1283,8 @@ static int PerformCommandZero(CommandParameters* params) {
}
if (params->cmdname[0] == 'z') {
- // Update only for the zero command, as the erase command will call this
+ // Update only for the zero command, as the erase command will call
+ // this if DEBUG_ERASE is defined.
params->written += tgt->size;
}
@@ -1464,10 +1470,8 @@ static int PerformCommandErase(CommandParameters* params) {
struct stat st;
uint64_t blocks[2];
- // Always zero the blocks first to work around possibly flaky BLKDISCARD
- // Bug: 20881595
- if (PerformCommandZero(params) != 0) {
- goto pceout;
+ if (DEBUG_ERASE) {
+ return PerformCommandZero(params);
}
if (!params) {