Re: [PATCH 2/2] block: create ioctl to discard-or-zeroout a range of blocks

From: Martin K. Petersen
Date: Thu Mar 03 2016 - 13:05:44 EST


>>>>> "Linus" == Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes:

Linus> .. but the flag doesn't even set that. Even if you avoid TRIM,
Linus> there is absolutely zero guarantees that WRITE_SAME would do
Linus> "real storage blocks full of zeroes backing the LBAs they just
Linus> wrote out".

That's not entirely true. Writing the blocks may cause them to be
allocated on the storage device (depending on which flags we feed it in
WRITE SAME).

The filesystems people were wanted the following semantics:

- deallocate, don't care about contents for future reads (discard)
- deallocate, guarantee zeroes on future reads (zeroout)
- (re)allocate, guarantee zeroes on future reads (zeroout)

Maybe we just need a better naming scheme...

--
Martin K. Petersen Oracle Linux Engineering