ceph/src/common
Josh Durgin 13ae13a906 librbd: add options to enable balanced or localized reads for snapshots
Since snapshots never change, it's safe to read from replicas for them.
A common use for this would be reading from a parent snapshot shared by
many clones.

Convert LibrbdWriteback and AioRead to use the ObjectOperation api
so we can set flags. Fortunately the external wrapper holds no data,
so its lifecycle doesn't need to be managed.

Include a simple workunit that sets the flags in various combinations
and looks for their presence in the logs from 'rbd export'.

Fixes: #3064
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-05-12 19:31:22 -07:00
..
admin_socket_client.cc
admin_socket_client.h
admin_socket.cc common/admin_socket.cc: remove scope of ret variable in do_accept() 2013-05-10 19:19:58 +02:00
admin_socket.h
arch.h
armor.c common/armor.c: reduce scope of some variables 2013-02-27 16:48:55 +01:00
armor.h
assert.cc
AsyncReserver.h Add priority option to AsyncReserver class 2013-05-09 12:00:29 -07:00
BackTrace.cc
BackTrace.h
blkdev.cc
blkdev.h
buffer.cc common/buffer.cc: prefer prefix ++operator for iterators 2013-03-13 18:39:26 +01:00
ceph_argparse.cc common/ceph_argparse.cc: remove scope of some variables 2013-05-10 19:19:58 +02:00
ceph_argparse.h ceph_argparse: add _daemon versions of argparse calls 2013-04-08 17:49:15 -07:00
ceph_context.cc Fix whitespace indentation 2013-05-07 14:26:15 +02:00
ceph_context.h md_config_t: change from class to struct as the name indicates 2013-04-08 14:06:05 +02:00
ceph_crypto_cms.cc rgw: fix build 2012-11-08 13:24:30 -08:00
ceph_crypto_cms.h rgw: fix build 2012-11-08 13:24:30 -08:00
ceph_crypto.cc ceph_crypto.cc: remove unused shutdown() outside crypto ifdef's 2013-02-06 08:42:03 -08:00
ceph_crypto.h crypto: add cms utility function 2012-11-02 13:13:38 -07:00
ceph_json.cc ceph_json: add missing include file 2013-03-29 00:25:50 -07:00
ceph_json.h ceph_json: add template specializations 2013-03-29 00:25:45 -07:00
Clock.cc
Clock.h
code_environment.cc code_environment.cc: move variable ret in get_process_name() 2013-02-27 17:50:45 +01:00
code_environment.h
common_init.cc common: reduce default in-memory logs for non-daemons 2013-03-06 17:47:28 -08:00
common_init.h
compiler_extensions.h
Cond.h
config_obs.h md_config_t: change from class to struct as the name indicates 2013-04-08 14:06:05 +02:00
config_opts.h librbd: add options to enable balanced or localized reads for snapshots 2013-05-12 19:31:22 -07:00
config.cc config.cc: remove unused variable 'val' from parse_injectargs() 2013-02-27 17:53:14 +01:00
config.h md_config_t: change from class to struct as the name indicates 2013-04-08 14:06:05 +02:00
ConfUtils.cc configuration parsing: give better error for missing = 2013-02-21 21:45:27 -08:00
ConfUtils.h
debug.h
DecayCounter.cc DecayCounter: use modern encoding 2013-02-08 13:17:51 -08:00
DecayCounter.h DecayCounter: use modern encoding 2013-02-08 13:17:51 -08:00
dout.cc
dout.h
entity_name.cc
entity_name.h
environment.cc
environment.h
errno.cc
errno.h
escape.c
escape.h
fd.cc
fd.h
fiemap.cc common/fiemap.cc: fix realloc memory leak 2013-02-10 10:05:05 +01:00
Finisher.cc common/Finisher.cc: prefer prefix ++operator for iterators 2013-03-18 12:20:43 +01:00
Finisher.h perfcounters: fl -> time, use u64 nsec instead of double 2012-11-26 15:30:25 -08:00
Formatter.cc formatter: add the ability to dump attrs in xml entities 2013-03-08 08:31:37 -08:00
Formatter.h common/Formatter.h: remove twice included <list> 2013-03-22 16:01:15 +01:00
HeartbeatMap.cc common/HeartbeatMap: fix uninitialized variable 2013-01-24 10:52:46 -08:00
HeartbeatMap.h common/HeartbeatMap: inject unhealthy heartbeat for N seconds 2013-01-22 21:20:55 -08:00
hex.cc
hex.h
ipaddr.cc
likely.h
lockdep.cc common/lockdep.cc: prefer prefix ++operator for iterators 2013-03-14 19:18:04 +01:00
lockdep.h
LogClient.cc common/LogClient.cc: : prefer prefix ++operator for iterators 2013-03-13 18:08:31 +01:00
LogClient.h
LogEntry.cc mon: allow syslog level and facility for cluster log to be controlled 2013-02-20 12:52:32 -08:00
LogEntry.h LogEntry.h: prefer prefix ++operator for iterators 2013-03-13 18:09:00 +01:00
map_cacher.hpp common/: add map_cacher 2013-03-13 19:45:12 -07:00
MemoryModel.cc common/MemoryModel: remove logging to /tmp/memlog 2013-03-22 13:25:49 -07:00
MemoryModel.h
mime.c
mime.h
Mutex.cc Mutex.cc: fix implicitly-defined namespace 'std' 2013-02-11 16:47:58 +01:00
Mutex.h Mutex: Instrument Mutex with perfcouter for Lock() wait 2012-10-30 13:31:09 -07:00
obj_bencher.cc common/obj_bencher.cc: reduce scope of avg_bandwidth 2013-05-10 19:19:58 +02:00
obj_bencher.h
OutputDataSocket.cc OutputDataSocket: fix uninit var 2012-12-01 16:57:00 -08:00
OutputDataSocket.h rgw: ops log can also go to socket 2012-11-16 15:17:20 -08:00
page.cc
perf_counters.cc perfcounters: fl -> time, use u64 nsec instead of double 2012-11-26 15:30:25 -08:00
perf_counters.h perfcounters: fl -> time, use u64 nsec instead of double 2012-11-26 15:30:25 -08:00
pick_address.cc common/pick_address.cc: prefer prefix ++operator for iterators 2013-03-13 18:40:06 +01:00
pick_address.h
pipe.c common/pipe.c: remove twice included unistd.h 2012-11-28 08:25:42 -08:00
pipe.h
PrebufferedStreambuf.cc
PrebufferedStreambuf.h
Preforker.h common/Preforker: fix warnings 2013-05-08 16:42:24 -07:00
PrioritizedQueue.h common/PrioritizedQueue: dump state to Formatter 2013-01-22 14:47:41 -08:00
RefCountedObj.cc common: add RefCountedObj.cc with intrusive_ptr hooks 2012-11-13 10:45:00 -08:00
RefCountedObj.h common: add RefCountedObj.cc with intrusive_ptr hooks 2012-11-13 10:45:00 -08:00
run_cmd.cc
run_cmd.h
RWLock.h common: add lockers for RWLocks 2013-02-21 11:15:43 -08:00
safe_io.c common/safe_io.c: reduce scope of some ssize_t variables 2013-05-10 19:19:58 +02:00
safe_io.h
sctp_crc32.c
secret.c common/secret.c: reduce the scope of some variables 2013-02-27 18:22:24 +01:00
secret.h
Semaphore.h
shared_cache.hpp shared_cache: clear lru in destructor 2013-03-21 18:37:35 -07:00
sharedptr_registry.hpp common/sharedptr_registry.hpp: add remove 2013-05-09 17:28:15 -07:00
signal.cc
signal.h
simple_cache.hpp OSD: don't wait for superblock writes in handle_osd_map 2012-12-05 11:34:18 -08:00
simple_spin.cc
simple_spin.h
SimpleRNG.h mon/MonClient: use thread-safe RNG for picking monitors 2012-11-17 16:30:00 -08:00
snap_types.cc
snap_types.h
static_assert.h
str_list.cc rgw: with CORS support 2013-03-31 21:51:48 -07:00
strtol.cc
strtol.h
sync_filesystem.h fix syncfs handling in error case 2012-11-27 08:52:52 -08:00
TextTable.cc TextTable: pass const string by refrence to define_column() 2013-02-27 16:14:22 +01:00
TextTable.h TextTable: pass const string by refrence to define_column() 2013-02-27 16:14:22 +01:00
Thread.cc
Thread.h
Throttle.cc Throttle: add a simpler throttle that just blocks above a threshold 2013-05-10 12:00:11 -07:00
Throttle.h Throttle: move start_op() to C_SimpleThrottle constructor 2013-05-10 16:17:11 -07:00
Timer.cc Timer.cc: use complete() rather than finish() 2013-02-20 13:29:19 -08:00
Timer.h
tracked_int_ptr.hpp common/: add tracked_int_ptr.hpp 2013-04-19 11:00:22 -07:00
TrackedOp.h
utf8.c
utf8.h
util.cc common: util: add 'unit_to_bytesize()' function 2013-03-29 16:47:28 -07:00
version.cc version: drop 'commit:' prefix on sha1 2012-10-16 17:52:25 -07:00
version.h
WorkQueue.cc common/WorkQueue.cc: prefer prefix ++operator for iterators 2013-03-13 18:09:30 +01:00
WorkQueue.h WorkQueue: Allow WorkQueueVal to be specified with 1 type 2013-05-07 08:16:04 -07:00
xattr.c
xattr.h os/chain_xattr: move chained xattr helpers into separate file/module 2012-11-05 00:13:52 -08:00