On Fri, Nov 13, 2015 at 02:01:43PM -0800, Darrick J. Wong wrote:
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.
So does BLKZEROOUT. Seems like adding the cache invalidation should
be one patch and the ioctl another one. Otherwise this looks fine
except that I kinda hate BLKZEROOUT2 name, but can't come up with
anything better.