summaryrefslogtreecommitdiffstats
path: root/include/linux/ceph/libceph.h
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2020-05-22 15:24:53 +0200
committerIlya Dryomov <idryomov@gmail.com>2020-06-01 13:22:53 +0200
commit45e6aa9f5592cd127367074f4822039cd8a825c3 (patch)
treec76d86a35c3aa9b67112060635093369d20b577c /include/linux/ceph/libceph.h
parent86403a92c3c5c6c395983fdbfc5e2f29dc39279b (diff)
downloadlinux-stable-45e6aa9f5592cd127367074f4822039cd8a825c3.tar.gz
linux-stable-45e6aa9f5592cd127367074f4822039cd8a825c3.tar.bz2
linux-stable-45e6aa9f5592cd127367074f4822039cd8a825c3.zip
libceph: crush_location infrastructure
Allow expressing client's location in terms of CRUSH hierarchy as a set of (bucket type name, bucket name) pairs. The userspace syntax "crush_location = key1=value1 key2=value2" is incompatible with mount options and needed adaptation. Key-value pairs are separated by '|' and we use ':' instead of '=' to separate keys from values. So for: crush_location = host=foo rack=bar one would write: crush_location=host:foo|rack:bar As in userspace, "multipath" locations are supported, so indicating locality for parallel hierarchies is possible: crush_location=rack:foo1|rack:foo2|datacenter:bar Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Reviewed-by: Jeff Layton <jlayton@kernel.org>
Diffstat (limited to 'include/linux/ceph/libceph.h')
-rw-r--r--include/linux/ceph/libceph.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
index 4b5a47bcaba4..4733959f1ec7 100644
--- a/include/linux/ceph/libceph.h
+++ b/include/linux/ceph/libceph.h
@@ -64,6 +64,7 @@ struct ceph_options {
int num_mon;
char *name;
struct ceph_crypto_key *key;
+ struct rb_root crush_locs;
};
/*