summaryrefslogtreecommitdiff
path: root/fs/ceph/cache.h
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2019-11-18 12:51:02 +0100
committerIlya Dryomov <idryomov@gmail.com>2019-11-25 11:44:03 +0100
commit686238b7431dcca870ff0bc8ae280cdc89ee41c7 (patch)
treebf080481c35be98f9d4f38c23a998c16f3d3ffc3 /fs/ceph/cache.h
parentb9ef2b8858a0cf07d5f1b201abaf2480f4aa8201 (diff)
downloadlinux-686238b7431dcca870ff0bc8ae280cdc89ee41c7.tar.gz
linux-686238b7431dcca870ff0bc8ae280cdc89ee41c7.tar.bz2
linux-686238b7431dcca870ff0bc8ae280cdc89ee41c7.zip
rbd: remove snapshot existence validation code
RBD_DEV_FLAG_EXISTS check in rbd_queue_workfn() is racy and leads to inconsistent behaviour. If the object (or its snapshot) isn't there, the OSD returns ENOENT. A read submitted before the snapshot removal notification is processed would be zero-filled and ended with status OK, while future reads would be failed with IOERR. It also doesn't handle a case when an image that is mapped read-only is removed. On top of this, because watch is no longer established for read-only mappings, we no longer get notifications, so rbd_exists_validate() is effectively dead code. While failing requests rather than returning zeros is a good thing, RBD_DEV_FLAG_EXISTS is not it. Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Reviewed-by: Jason Dillaman <dillaman@redhat.com> Reviewed-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
Diffstat (limited to 'fs/ceph/cache.h')
0 files changed, 0 insertions, 0 deletions