Merge "Zero blocks before BLKDISCARD"

This commit is contained in:
Sami Tolvanen
2015-06-09 21:15:15 +00:00
committed by Gerrit Code Review
+5 -9
View File
@@ -39,11 +39,6 @@
#define BLOCKSIZE 4096 #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 #ifndef BLKDISCARD
#define BLKDISCARD _IO(0x12,119) #define BLKDISCARD _IO(0x12,119)
#endif #endif
@@ -1283,8 +1278,7 @@ static int PerformCommandZero(CommandParameters* params) {
} }
if (params->cmdname[0] == 'z') { if (params->cmdname[0] == 'z') {
// Update only for the zero command, as the erase command will call // Update only for the zero command, as the erase command will call this
// this if DEBUG_ERASE is defined.
params->written += tgt->size; params->written += tgt->size;
} }
@@ -1470,8 +1464,10 @@ static int PerformCommandErase(CommandParameters* params) {
struct stat st; struct stat st;
uint64_t blocks[2]; uint64_t blocks[2];
if (DEBUG_ERASE) { // Always zero the blocks first to work around possibly flaky BLKDISCARD
return PerformCommandZero(params); // Bug: 20881595
if (PerformCommandZero(params) != 0) {
goto pceout;
} }
if (!params) { if (!params) {