block: Allow devices to indicate whether discarded blocks are zeroed
authorMartin K. Petersen <martin.petersen@oracle.com>
Thu, 3 Dec 2009 08:24:48 +0000 (09:24 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 3 Dec 2009 08:24:48 +0000 (09:24 +0100)
commit98262f2762f0067375f83824d81ea929e37e6bfe
treea26618d5c305eed975501c80cb02bc0f1b6e4524
parent464191c65b85a8ec68a6e1a6293af625287c807e
block: Allow devices to indicate whether discarded blocks are zeroed

The discard ioctl is used by mkfs utilities to clear a block device
prior to putting metadata down.  However, not all devices return zeroed
blocks after a discard.  Some drives return stale data, potentially
containing old superblocks.  It is therefore important to know whether
discarded blocks are properly zeroed.

Both ATA and SCSI drives have configuration bits that indicate whether
zeroes are returned after a discard operation.  Implement a block level
interface that allows this information to be bubbled up the stack and
queried via a new block device ioctl.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/blk-settings.c
block/blk-sysfs.c
block/compat_ioctl.c
block/ioctl.c
include/linux/blkdev.h
include/linux/fs.h