summaryrefslogtreecommitdiffstats
path: root/fs/cifs/dir.c
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2018-02-06 19:26:34 +0100
committerIlya Dryomov <idryomov@gmail.com>2018-04-02 10:12:43 +0200
commit2bb1e56ec6450ce533c644c5bfa548dc34c551a0 (patch)
tree10b591e350fc80d19b5a46c3798f3be5fa3acbc8 /fs/cifs/dir.c
parentrbd: move to obj_req->img_extents (diff)
downloadlinux-2bb1e56ec6450ce533c644c5bfa548dc34c551a0.tar.xz
linux-2bb1e56ec6450ce533c644c5bfa548dc34c551a0.zip
rbd: create+truncate for whole-object layered discards
A whole-object layered discard is implemented as a truncate rather than a delete: a dummy object is needed to prevent the CoW machinery from kicking in. However, a truncate on a non-existent object is a no-op. If the object doesn't exist in HEAD, a discard request is effectively ignored, which violates our "discard zeroes data" promise and breaks REQ_OP_WRITE_ZEROES implementation. A non-exclusive create on an existing object is also a no-op, so the fix is to do a compound create+truncate instead. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions