On Thu, Jul 26, 2018 at 7:10 PM Eric Blake <ebl...@redhat.com> wrote:
> On 07/26/2018 10:33 AM, Kevin Wolf wrote: > > > > > As far as I know, the comment you quoted is accurate for BLKDISCARD and > > BLKZEROOUT, but not for the fallocate() flags. > > > > I sure wish the man pages were more explicit on what guarantees each > flag offers. > > >> Hmm - that thread also mentions FALLOC_FL_NO_HIDE_STALE, which is a new > flag > >> not present/documented on Fedora 28. I wonder if it helps, too. > >> > >>> > >>> FALLOC_FL_ZERO_RANGE in contrast implements write_zeroes without unmap. > >> > >> I thought the opposite: FALLOC_FL_ZERO_RANGE guarantees that you read > back > >> 0, using whatever is most efficient under the hood (in the case of block > >> devices, unmapping that reliably reads back as zero is favored). > > > > See the code I quoted above, FALLOC_FL_ZERO_RANGE calls > > blkdev_issue_zeroout() with BLKDEV_ZERO_NOUNMAP internally. > > Having to resort to reading the kernel code to learn what the guarantees > are is annoying (it's nice that GPL guarantees that we CAN do that, but > it means the man pages could use some TLC so that we don't have to). > Especially since the kernel code has changed over time. > > But your paste of current kernel code is rather hard to argue against. > I don't think we should depend on undocumented kernel code. Nir