blkdev_issue_zeroout — zero-fill a block range
intblkdev_issue_zeroout( | struct block_device *bdev, |
| sector_tsector, | |
| sector_tnr_sects, | |
| gfp_tgfp_mask, | |
booldiscard); |
struct block_device * bdevblockdev to write
sector_t sectorstart sector
sector_t nr_sectsnumber of sectors to write
gfp_t gfp_maskmemory allocation flags (for bio_alloc)
bool discardwhether to discard the block range
Zero-fill a block range. If the discard flag is set and the block device guarantees that subsequent READ operations to the block range in question will return zeroes, the blocks will be discarded. Should the discard request fail, if the discard flag is not set, or if discard_zeroes_data is not supported, this function will resort to zeroing the blocks manually, thus provisioning (allocating, anchoring) them. If the block device supports WRITE ZEROES or WRITE SAME command(s),blkdev_issue_zeroout will use it to optimize the process of clearing the block range. Otherwise the zeroing will be performed using regular WRITE calls.