linux-stable/include/linux/ceph
Ilya Dryomov bb229bbb3b libceph: wait for latest osdmap in ceph_monc_blacklist_add()
Because map updates are distributed lazily, an OSD may not know about
the new blacklist for quite some time after "osd blacklist add" command
is completed.  This makes it possible for a blacklisted but still alive
client to overwrite a post-blacklist update, resulting in data
corruption.

Waiting for latest osdmap in ceph_monc_blacklist_add() and thus using
the post-blacklist epoch for all post-blacklist requests ensures that
all such requests "wait" for the blacklist to come into force on their
respective OSDs.

Cc: stable@vger.kernel.org
Fixes: 6305a3b415 ("libceph: support for blacklisting clients")
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2019-03-20 16:27:40 +01:00
..
auth.h libceph: add authorizer challenge 2018-08-02 21:33:24 +02:00
buffer.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ceph_debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ceph_features.h libceph: assume argonaut on the server side 2018-11-08 17:51:11 +01:00
ceph_frag.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ceph_fs.h ceph: always get rstat from auth mds 2018-06-04 20:45:55 +02:00
ceph_hash.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cls_lock_client.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
decode.h libceph: remove now unused ceph_{en,de}code_timespec() 2018-08-02 21:33:20 +02:00
libceph.h libceph: wait for latest osdmap in ceph_monc_blacklist_add() 2019-03-20 16:27:40 +01:00
mdsmap.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
messenger.h libceph: preallocate message data items 2018-10-22 10:28:22 +02:00
mon_client.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msgpool.h libceph: preallocate message data items 2018-10-22 10:28:22 +02:00
msgr.h libceph: add authorizer challenge 2018-08-02 21:33:24 +02:00
osd_client.h libceph: allow setting abort_on_full for rbd 2019-01-07 22:47:48 +01:00
osdmap.h libceph: allocate the locator string with GFP_NOFAIL 2018-06-04 20:46:00 +02:00
pagelist.h libceph: introduce ceph_pagelist_alloc() 2018-10-22 10:28:21 +02:00
rados.h libceph: support the RADOS copy-from operation 2018-10-22 10:28:23 +02:00
string_table.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
striper.h libceph, ceph: move ceph_calc_file_object_mapping() to striper.c 2018-04-02 10:12:43 +02:00
types.h ceph: add mount option to limit caps count 2019-03-05 18:55:17 +01:00