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 > 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