block: add secure discard
Secure discard is the same as discard except that all copies of the discarded sectors (perhaps created by garbage collection) must also be erased. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Acked-by: Jens Axboe <axboe@kernel.dk> Cc: Kyungmin Park <kmpark@infradead.org> Cc: Madhusudhan Chikkature <madhu.cr@ti.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Ben Gardiner <bengardiner@nanometrics.ca> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
93caf8e69e
commit
8d57a98ccd
@@ -710,6 +710,9 @@ static void blk_add_trace_rq(struct request_queue *q, struct request *rq,
|
||||
if (rq->cmd_flags & REQ_DISCARD)
|
||||
rw |= REQ_DISCARD;
|
||||
|
||||
if (rq->cmd_flags & REQ_SECURE)
|
||||
rw |= REQ_SECURE;
|
||||
|
||||
if (rq->cmd_type == REQ_TYPE_BLOCK_PC) {
|
||||
what |= BLK_TC_ACT(BLK_TC_PC);
|
||||
__blk_add_trace(bt, 0, blk_rq_bytes(rq), rw,
|
||||
@@ -1816,6 +1819,8 @@ void blk_fill_rwbs(char *rwbs, u32 rw, int bytes)
|
||||
rwbs[i++] = 'S';
|
||||
if (rw & REQ_META)
|
||||
rwbs[i++] = 'M';
|
||||
if (rw & REQ_SECURE)
|
||||
rwbs[i++] = 'E';
|
||||
|
||||
rwbs[i] = '\0';
|
||||
}
|
||||
@@ -1828,6 +1833,9 @@ void blk_fill_rwbs_rq(char *rwbs, struct request *rq)
|
||||
if (rq->cmd_flags & REQ_DISCARD)
|
||||
rw |= REQ_DISCARD;
|
||||
|
||||
if (rq->cmd_flags & REQ_SECURE)
|
||||
rw |= REQ_SECURE;
|
||||
|
||||
bytes = blk_rq_bytes(rq);
|
||||
|
||||
blk_fill_rwbs(rwbs, rw, bytes);
|
||||
|
Reference in New Issue
Block a user