Re: [PATCH RFC 1/3] block: Add support for REQ_OP_ASSIGN_RANGE operation
From: Martin K. Petersen
Date: Thu Dec 19 2019 - 17:39:23 EST
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