summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2012-02-24 13:22:49 -0800
committerSage Weil <sage@newdream.net>2012-02-24 13:22:49 -0800
commit008ce6b2d471dbef27cb24fad90d512cbf35bc1b (patch)
tree823d5de58f750567d128aa08c3138a7d1ebf97bd
parentbe761149f5f829d0aa4bfc65891848efc59f7143 (diff)
parent732f3ec94e39d458230b7728b2a936d431e19322 (diff)
downloadceph-008ce6b2d471dbef27cb24fad90d512cbf35bc1b.tar.gz
Merge branch 'stable'
-rw-r--r--configure.ac2
-rw-r--r--debian/changelog6
-rw-r--r--src/messages/MOSDMap.h11
-rw-r--r--src/osd/osd_types.cc22
4 files changed, 37 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 5f28aab9276..6df5659947f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8,7 +8,7 @@ AC_PREREQ(2.59)
# NOTE: This version is _only_ used for naming the tarball. The
# VERSION define is not used by the code. It gets a version string
# from 'git describe'; see src/ceph_ver.[ch]
-AC_INIT([ceph], [0.42.1], [ceph-devel@vger.kernel.org])
+AC_INIT([ceph], [0.42.2], [ceph-devel@vger.kernel.org])
AC_CONFIG_SUBDIRS([src/gtest])
diff --git a/debian/changelog b/debian/changelog
index bee62ae8f52..65b108a9c54 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ceph (0.42.2-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Sage Weil <sage@newdream.net> Fri, 24 Feb 2012 12:59:38 -0800
+
ceph (0.42.1-1) experimental; urgency=low
* New upstream release
diff --git a/src/messages/MOSDMap.h b/src/messages/MOSDMap.h
index f7838f7b7ae..cd4a9519e1d 100644
--- a/src/messages/MOSDMap.h
+++ b/src/messages/MOSDMap.h
@@ -22,7 +22,7 @@
class MOSDMap : public Message {
- static const int HEAD_VERSION = 2;
+ static const int HEAD_VERSION = 3;
public:
uuid_d fsid;
@@ -85,8 +85,13 @@ public:
void encode_payload(uint64_t features) {
::encode(fsid, payload);
if ((features & CEPH_FEATURE_PGID64) == 0 ||
- (features & CEPH_FEATURE_PGPOOL3) == 0) {
- header.version = 1;
+ (features & CEPH_FEATURE_PGPOOL3) == 0 ||
+ (features & CEPH_FEATURE_OSDENC) == 0) {
+ if ((features & CEPH_FEATURE_PGID64) == 0 ||
+ (features & CEPH_FEATURE_PGPOOL3) == 0)
+ header.version = 1; // old old_client version
+ else
+ header.version = 2; // old pg_pool_t
// reencode maps using old format
//
diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc
index 11a10d4a7e9..b97fe5b33e6 100644
--- a/src/osd/osd_types.cc
+++ b/src/osd/osd_types.cc
@@ -591,6 +591,28 @@ void pg_pool_t::encode(bufferlist& bl, uint64_t features) const
return;
}
+ if ((features & CEPH_FEATURE_OSDENC) == 0) {
+ __u8 struct_v = 4;
+ ::encode(struct_v, bl);
+ ::encode(type, bl);
+ ::encode(size, bl);
+ ::encode(crush_ruleset, bl);
+ ::encode(object_hash, bl);
+ ::encode(pg_num, bl);
+ ::encode(pgp_num, bl);
+ ::encode(lpg_num, bl);
+ ::encode(lpgp_num, bl);
+ ::encode(last_change, bl);
+ ::encode(snap_seq, bl);
+ ::encode(snap_epoch, bl);
+ ::encode(snaps, bl);
+ ::encode(removed_snaps, bl);
+ ::encode(auid, bl);
+ ::encode(flags, bl);
+ ::encode(crash_replay_interval, bl);
+ return;
+ }
+
ENCODE_START(5, 5, bl);
::encode(type, bl);
::encode(size, bl);