Re: [RESEND] [PATCH] block: create ioctl to discard-or-zeroout a range of blocks
From: Darrick J. Wong <hidden>
Date: 2015-01-29 19:01:02
Also in:
linux-fsdevel, lkml
On Thu, Jan 29, 2015 at 11:02:58AM +0100, Arnd Bergmann wrote:
On Wednesday 28 January 2015 18:00:25 Darrick J. Wong wrote:quoted
Create a new ioctl to expose the block layer's newfound ability to issue either a zeroing discard, a WRITE SAME with a zero page, or a regular write with the zero page. This BLKZEROOUT2 ioctl takes {start, length, flags} as parameters. So far, the only flag available is to enable the zeroing discard part -- without it, the call invokes the old BLKZEROOUT behavior. start and length have the same meaning as in BLKZEROOUT. Furthermore, because BLKZEROOUT2 issues commands directly to the storage device, we must invalidate the page cache (as a regular O_DIRECT write would do) to avoid returning stale cache contents at a later time. This patch depends on "block: Add discard flag to blkdev_issue_zeroout() function" in Jens' for-3.20/core branch. Signed-off-by: Darrick J. Wong <redacted>Would this work ok for devices that fill discarded areas with all-ones instead of all-zeroes? I believe SD cards can do either.
It won't do all-ones, because the underlying blkdev_issue_zeroout call only knows how to tell the device to write zeroes or perform a discard if the flag is set and the device is whitelisted. This patch only exposes the existing kernel call to userspace. (All-ones could be plumbed into the storage stack, but that would have to be a separate patch.) --D
Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html