I'm not sure, as it's using an ioctl ioctl(fd, BLKZEROOUT) , to tell to the storage to write 0 from a begin sector to a end sector . (Some kind of offloading, a little bit like discard).
So, I don't think that O_DIRECT , CACHE_NONE,... apply here, as we don't really write zeroes through the...