linux-stable/include/linux/ceph
Jeff Layton 58eb7932ae libceph: add an epoch_barrier field to struct ceph_osd_client
Cephfs can get cap update requests that contain a new epoch barrier in
them. When that happens we want to pause all OSD traffic until the right
map epoch arrives.

Add an epoch_barrier field to ceph_osd_client that is protected by the
osdc->lock rwsem. When the barrier is set, and the current OSD map
epoch is below that, pause the request target when submitting the
request or when revisiting it. Add a way for upper layers (cephfs)
to update the epoch_barrier as well.

If we get a new map, compare the new epoch against the barrier before
kicking requests and request another map if the map epoch is still lower
than the one we want.

If we get a map with a full pool, or at quota condition, then set the
barrier to the current epoch value.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2017-05-04 09:19:21 +02:00
..
auth.h libceph: drop len argument of *verify_authorizer_reply() 2016-12-12 23:09:21 +01:00
buffer.h libceph: nuke ceph_kvfree() 2014-12-17 20:09:50 +03:00
ceph_debug.h
ceph_features.h libceph, ceph: always advertise all supported features 2017-05-04 09:19:18 +02:00
ceph_frag.h ceph: make logical calculation functions return bool 2016-05-26 01:15:39 +02:00
ceph_fs.h ceph: make seeky readdir more efficient 2017-05-04 09:19:20 +02:00
ceph_hash.h
cls_lock_client.h libceph: support for lock.lock_info 2016-08-24 23:49:15 +02:00
debugfs.h libceph: simplify our debugfs attr macro 2015-04-20 18:55:39 +03:00
decode.h libceph: add start en/decoding block helpers 2016-07-28 02:55:36 +02:00
libceph.h libceph: convert ceph_snap_context.nref from atomic_t to refcount_t 2017-05-04 09:19:18 +02:00
mdsmap.h ceph: allow connecting to mds whose rank >= mdsmap::m_max_mds 2017-05-04 09:19:20 +02:00
messenger.h A varied set of changes: 2016-12-16 11:23:34 -08:00
mon_client.h libceph: support for blacklisting clients 2016-08-24 23:49:15 +02:00
msgpool.h libceph: fix some missing includes 2016-07-28 02:55:35 +02:00
msgr.h libceph: use keepalive2 to verify the mon session is alive 2015-09-08 23:14:30 +03:00
osd_client.h libceph: add an epoch_barrier field to struct ceph_osd_client 2017-05-04 09:19:21 +02:00
osdmap.h rbd: kill obj_request->object_name and rbd_segment_name_cache 2017-02-20 12:16:15 +01:00
pagelist.h libceph: convert ceph_pagelist.refcnt from atomic_t to refcount_t 2017-05-04 09:19:19 +02:00
rados.h libceph: bump CEPH_PG_MAX_SIZE to 32 2017-02-20 12:16:11 +01:00
string_table.h libceph: introduce reference counted string 2016-07-28 02:55:37 +02:00
types.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00