On Thu, Dec 19, 2019 at 05:37:47PM -0500, Martin K. Petersen wrote: > > Kirill, > > > Hm. BLKDEV_ZERO_NOUNMAP is used in __blkdev_issue_write_zeroes() only. > > So, do I understand right that we should the below two?: > > > > 1) Introduce a new flag BLKDEV_ZERO_ALLOCATE for > > blkdev_issue_write_zeroes(). > > > 2) Introduce a new flag REQ_NOZERO in enum req_opf. > > Something like that. If zeroing is a problem for you. > > Right now we offer the following semantics: > > Deallocate, no zeroing (discard) > > Optionally deallocate, zeroing (zeroout) > > Allocate, zeroing (zeroout + NOUNMAP) > > Some devices also implement a fourth option which would be: > > Anchor: Allocate, no zeroing What happens if you anchor and then try to read the results? IO error? (Yeah, I'm being lazy and not digging through SBC-3, sorry...) --D > > Won't this confuse a reader that we have blkdev_issue_write_zeroes(), > > which does not write zeroes sometimes? Maybe we should rename > > blkdev_issue_write_zeroes() in some more generic name? > > Maybe. The naming is what it is for hysterical raisins and reflects how > things are implemented in the storage protocols. I wouldn't worry too > much about that. We can rename things if need be but we shouldn't plumb > an essentially identical operation through the block stack just to > expose a different name at the top. > > -- > Martin K. Petersen Oracle Linux Engineering