On Tue, May 23, 2017 at 05:08:27PM +0200, Ilya Dryomov wrote: > Commit 93c1defedcae ("rbd: remove the discard_zeroes_data flag") > explicitly didn't implement REQ_OP_WRITE_ZEROES for rbd, while the > following commit 48920ff2a5a9 ("block: remove the discard_zeroes_data > flag") dropped ->discard_zeroes_data in favor of REQ_OP_WRITE_ZEROES. > > rbd does support efficient zeroing via CEPH_OSD_OP_ZERO opcode and will > release either some or all blocks depending on whether the zeroing > request is rbd_obj_bytes() aligned. This is how we currently implement > discards, so REQ_OP_WRITE_ZEROES can be identical to REQ_OP_DISCARD for > now. Caveats: > > - REQ_NOUNMAP is ignored, but AFAICT that's true of at least two other > current implementations - nvme and loop That's no problem, it's just a hint in case the device differenciates the cases. > - there is no ->write_zeroes_alignment and blk_bio_write_zeroes_split() > is hence less helpful than blk_bio_discard_split(), but this can (and > should) be fixed on the rbd side Yes. > In the future we will split these into two code paths to respect > REQ_NOUNMAP on zeroout and save on zeroing blocks that couldn't be > released on discard. > > Fixes: 93c1defedcae ("rbd: remove the discard_zeroes_data flag") > Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx> Looks fine, Reviewed-by: Christoph Hellwig <hch@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html