summaryrefslogtreecommitdiff
path: root/fs/overlayfs/util.c
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2017-05-22 20:59:24 +0300
committerIlya Dryomov <idryomov@gmail.com>2017-05-29 12:18:01 +0300
commit6ac56951dc10232e24419f6972fc8131dd0166e0 (patch)
tree1a748b97e97439e897b30a26595c5a7872d131be /fs/overlayfs/util.c
parent5ed02dbb497422bf225783f46e6eadd237d23d6b (diff)
downloadlinux-6ac56951dc10232e24419f6972fc8131dd0166e0.tar.xz
rbd: implement REQ_OP_WRITE_ZEROES
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 - 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 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@gmail.com> Reviewed-by: Jason Dillaman <dillaman@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/overlayfs/util.c')
0 files changed, 0 insertions, 0 deletions