[Pkg-ceph-commits] [ceph] 03/03: New upstream release [0.87] + changelog summary
Dmitry Smirnov
onlyjob at moszumanska.debian.org
Sun Oct 19 00:23:39 UTC 2014
This is an automated email from the git hooks/post-receive script.
onlyjob pushed a commit to branch experimental
in repository ceph.
commit b9994cb (experimental)
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
Date: Sat Oct 18 18:08:27 2014
New upstream release [0.87] + changelog summary
---
debian/ceph-mds.install | 1 +
debian/ceph-test.install | 2 -
debian/ceph.install | 4 +-
debian/changelog | 14 ++
debian/control | 40 ++++
debian/copyright | 121 +++++++++-
debian/libcephfs1.symbols | 6 +-
debian/librados2.symbols | 13 +-
debian/libradosstriper-dev.install | 5 +
debian/libradosstriper1.install | 1 +
debian/libradosstriper1.symbols | 36 +++
debian/librbd1.symbols | 5 +-
debian/patches/arch.patch | 14 +-
debian/patches/backfill-prio.patch | 268 ----------------------
debian/patches/bash-completion.patch | 98 --------
debian/patches/bug-8342.patch | 38 ----
debian/patches/bug-8624a.patch | 60 -----
debian/patches/bug-8624b.patch | 37 ---
debian/patches/bug-8821.patch | 353 -----------------------------
debian/patches/bug-9341.patch | 106 ---------
debian/patches/client-sleep1.patch | 46 ----
debian/patches/client-sleep2.patch | 41 ----
debian/patches/client-sleep3.patch | 44 ----
debian/patches/firefly-latest.patch | 30 ---
debian/patches/modules.patch | 34 ++-
debian/patches/p2139.patch | 39 ----
debian/patches/rbdmap1-mount.patch | 147 ------------
debian/patches/rbdmap2-hooks.patch | 99 --------
debian/patches/sample.ceph.conf.patch | 411 ++++++++++------------------------
debian/patches/series | 14 --
debian/patches/sleep-recover.patch | 2 +-
debian/rules | 4 +
32 files changed, 392 insertions(+), 1741 deletions(-)
diff --git a/debian/ceph-mds.install b/debian/ceph-mds.install
index 8a5d74e..df3cbe4 100644
--- a/debian/ceph-mds.install
+++ b/debian/ceph-mds.install
@@ -1,2 +1,3 @@
usr/bin/ceph-mds
+usr/bin/cephfs-journal-tool
usr/share/man/man8/ceph-mds.8
diff --git a/debian/ceph-test.install b/debian/ceph-test.install
index 1d37f45..ee64098 100644
--- a/debian/ceph-test.install
+++ b/debian/ceph-test.install
@@ -6,8 +6,6 @@ usr/bin/ceph_bench_log /usr/lib/ceph/bin
usr/bin/ceph_dupstore /usr/lib/ceph/bin
usr/bin/ceph_erasure_code /usr/lib/ceph/bin
usr/bin/ceph_erasure_code_benchmark /usr/lib/ceph/bin
-usr/bin/ceph_filestore_dump /usr/lib/ceph/bin
-usr/bin/ceph_filestore_tool /usr/lib/ceph/bin
usr/bin/ceph_kvstorebench /usr/lib/ceph/bin
usr/bin/ceph_multi_stress_watch /usr/lib/ceph/bin
usr/bin/ceph_omapbench /usr/lib/ceph/bin
diff --git a/debian/ceph.install b/debian/ceph.install
index 87c5865..c4b2a31 100644
--- a/debian/ceph.install
+++ b/debian/ceph.install
@@ -1,6 +1,5 @@
debian/etc/pm/sleep.d/* /etc/pm/sleep.d/
etc/bash_completion.d/ceph
-sbin/mkcephfs
usr/bin/ceph-clsinfo
usr/bin/ceph-debugpack
usr/bin/ceph-mon
@@ -12,6 +11,8 @@ usr/bin/monmaptool
usr/bin/osdmaptool
usr/lib/*/ceph/ceph_common.sh
usr/lib/*/ceph/erasure-code/libec_jerasure*.so
+usr/lib/*/ceph/erasure-code/libec_lrc.so*
+usr/lib/*/ceph/erasure-code/libec_isa.so*
usr/lib/*/rados-classes/*.so
usr/sbin/ceph-create-keys
usr/sbin/ceph-disk
@@ -25,7 +26,6 @@ usr/share/man/man8/ceph-mon.8
usr/share/man/man8/ceph-osd.8
usr/share/man/man8/ceph-run.8
usr/share/man/man8/crushtool.8
-usr/share/man/man8/mkcephfs.8
usr/share/man/man8/monmaptool.8
usr/share/man/man8/osdmaptool.8
## install from source tree
diff --git a/debian/changelog b/debian/changelog
index a0a4099..a812455 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+ceph (0.87-1) UNRELEASED; urgency=medium
+
+ * New major upstream release [October 2014].
+ + new "libradosstriper*" binary packages.
+ * Patchworks (removed old patches, refreshed remaining ones).
+ * Build-Depends:
+ + libbabeltrace-dev
+ + libbabeltrace-ctf-dev
+ + libbz2-dev
+ + libudev-dev
+ * Build with "--with-babeltrace".
+
+ -- Dmitry Smirnov <onlyjob at debian.org> Sat, 18 Oct 2014 15:59:17 +1100
+
ceph (0.80.7-1) unstable; urgency=medium
* New upstream release [October 2014].
diff --git a/debian/control b/debian/control
index 4d6a1ab..73f7f25 100644
--- a/debian/control
+++ b/debian/control
@@ -21,6 +21,9 @@ Build-Depends: debhelper (>= 9~),
libboost-program-options-dev,
libboost-system-dev,
libboost-thread-dev,
+ libbabeltrace-dev,
+ libbabeltrace-ctf-dev,
+ libbz2-dev,
libcurl4-gnutls-dev,
libedit-dev,
libexpat1-dev,
@@ -33,6 +36,8 @@ Build-Depends: debhelper (>= 9~),
libs3-dev,
libsnappy-dev,
libtool,
+# liblttng-ust-dev (>= 2.5.0) [amd64 armel armhf i386 mips mipsel powerpc s390x],
+ libudev-dev,
libxml2-dev,
pkg-config,
python-all (>= 2.6.6-3~),
@@ -236,6 +241,8 @@ Section: libs
Conflicts: libcrush, libcrush1, librados, librados1
Replaces: libcrush, libcrush1, librados, librados1
Depends: ${misc:Depends}, ${shlibs:Depends}
+# undefined symbol: lttng_probe_register
+# ,liblttng-ust0 (>= 2.5.0)
Pre-Depends: ${misc:Pre-Depends}
Description: RADOS distributed object store client library
RADOS is a reliable, autonomic distributed object storage cluster
@@ -273,6 +280,39 @@ Description: RADOS distributed object store client library (development files)
This package contains development files needed for building applications that
link against librados2.
+Package: libradosstriper1
+Architecture: linux-any
+Section: libs
+Depends: librados2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: RADOS striping interface
+ Striping interface built on top of the rados library, allowing
+ to stripe bigger objects onto several standard rados objects using
+ an interface very similar to the rados one.
+
+Package: libradosstriper1-dbg
+Architecture: linux-any
+Section: debug
+Priority: extra
+Depends: libradosstriper1 (= ${binary:Version}), ${misc:Depends}
+Description: debugging symbols for libradosstriper
+ libradosstriper is a striping interface built on top of the rados
+ library, allowing to stripe bigger objects onto several standard
+ rados objects using an interface very similar to the rados one.
+ .
+ This package contains debugging symbols for libradosstriper.
+
+Package: libradosstriper-dev
+Architecture: linux-any
+Section: libdevel
+Depends: libradosstriper1 (= ${binary:Version}), ${misc:Depends}
+Description: RADOS striping interface (development files)
+ libradosstriper is a striping interface built on top of the rados
+ library, allowing to stripe bigger objects onto several standard
+ rados objects using an interface very similar to the rados one.
+ .
+ This package contains development files needed for building applications that
+ link against libradosstriper.
+
Package: librbd1
Architecture: linux-any
Section: libs
diff --git a/debian/copyright b/debian/copyright
index da07f5f..9cba12f 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,18 +4,21 @@ Upstream-Contact: Sage Weil <sage at newdream.net>
Source: http://ceph.com/
Files: *
-Copyright: 2004-2013 Sage Weil <sage at newdream.net>
+Copyright: 2004-2014 Sage Weil <sage at newdream.net>
2004-2014 Inktank <info at inktank.com>
Inktank, Inc
Inktank Storage, Inc.
2012-2014 Red Hat <contact at redhat.com>
2013-2014 Cloudwatt <libre.licensing at cloudwatt.com>
+ 2013 CohortFS, LLC
2004-2011 Dreamhost
2013 eNovance SAS <licensing at enovance.com>
+ 2014 Adam Crume <adamcrume at gmail.com>
2012 Florian Haas, hastexo
2010 Greg Farnum <gregf at hq.newdream.net>
2014 John Spray <john.spray at inktank.com
2004-2012 New Dream Network
+ 2014 Sebastien Ponce <sebastien.ponce at cern.ch>
2011 Stanislav Sedov <stas at FreeBSD.org>
2013-2014 UnitedStack <haomai at unitedstack.com>
2011 Wido den Hollander <wido at widodh.nl>
@@ -23,15 +26,125 @@ License: LGPL-2.1
Files: src/erasure-code/jerasure/ErasureCode*
src/erasure-code/ErasureCode*
+ src/erasure-code/isa/*
src/include/str_map.h
src/test/common/test_str_map.cc
src/test/erasure-code/*
src/test/rgw/test_rgw_manifest.cc
-Copyright: 2014 CERN/Switzerland
- 2013 Cloudwatt <libre.licensing at cloudwatt.com>
- 2013 eNovance SAS <licensing at enovance.com>
+Copyright: 2014 CERN/Switzerland
+ 2013-2014 Cloudwatt <libre.licensing at cloudwatt.com>
+ 2014 Red Hat <contact at redhat.com>
+ 2013 eNovance SAS <licensing at enovance.com>
License: LGPL-2.1+
+Files: src/erasure-code/isa/isa-l/erasure_code/*
+Copyright: 2011-2014 Intel Corporation
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: src/rocksdb/*
+Copyright: 2004-2013 Facebook, Inc.
+ 2011 The LevelDB Authors
+ 2009 Google Inc.
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Comment:
+ Additional Grant of Patent Rights
+ .
+ “Software” means the rocksdb software distributed by Facebook, Inc.
+ .
+ Facebook hereby grants you a perpetual, worldwide, royalty-free,
+ non-exclusive, irrevocable (subject to the termination provision below)
+ license under any rights in any patent claims owned by Facebook, to make,
+ have made, use, sell, offer to sell, import, and otherwise transfer the
+ Software. For avoidance of doubt, no license is granted under Facebook’s
+ rights in any patent claims that are infringed by (i) modifications to the
+ Software made by you or a third party, or (ii) the Software in combination
+ with any software or other technology provided by you or a third party.
+ .
+ The license granted hereunder will terminate, automatically and without
+ notice, for anyone that makes any claim (including by filing any lawsuit,
+ assertion or other action) alleging (a) direct, indirect, or contributory
+ infringement or inducement to infringe any patent: (i) by Facebook or any
+ of its subsidiaries or affiliates, whether or not such claim is related
+ to the Software, (ii) by any party if such claim arises in whole or in
+ part from any software, product or service of Facebook or any of its
+ subsidiaries or affiliates, whether or not such claim is related to the
+ Software, or (iii) by any party relating to the Software; or (b) that
+ any right in any patent claim of Facebook is invalid or unenforceable.
+
+Files: src/rocksdb/util/xxhash.*
+Copyright: 2012-2014, Yann Collet.
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ .
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
Files: src/mount/canonicalize.c
src/test/common/test_config.cc
src/test/crush/TestCrushWrapper.cc
diff --git a/debian/libcephfs1.symbols b/debian/libcephfs1.symbols
index 955b701..faed00b 100644
--- a/debian/libcephfs1.symbols
+++ b/debian/libcephfs1.symbols
@@ -1,6 +1,6 @@
libcephfs.so.1 libcephfs1 #MINVER#
- (regex)"^ceph_ver__[0-9a-f]{40}@Base$" 0.80
- (regex|c++)"^_.*" 0.80
+ (regex)"^ceph_ver__[0-9a-f]{40}@Base$" 0.87
+ (regex|c++)"^_.*" 0.87
CEPH_CONF_FILE_DEFAULT at Base 0.72.2
ceph_arch_intel_pclmul at Base 0.79
ceph_arch_intel_probe at Base 0.72.2
@@ -246,6 +246,8 @@ libcephfs.so.1 libcephfs1 #MINVER#
#MISSING: 0.79# is_kernel_secret at Base 0.72.2
mime_decode_from_qp at Base 0.72.2
mime_encode_as_qp at Base 0.72.2
+ module_has_param at Base 0.87
+ module_load at Base 0.87
pem_key at Base 0.72.2
pipe_cloexec at Base 0.72.2
#MISSING: 0.79# read_secret_from_file at Base 0.72.2
diff --git a/debian/librados2.symbols b/debian/librados2.symbols
index 4e78c39..77e8333 100644
--- a/debian/librados2.symbols
+++ b/debian/librados2.symbols
@@ -1,6 +1,9 @@
librados.so.2 librados2 #MINVER#
- (regex)"^ceph_ver__[0-9a-f]{40}@Base$" 0.80
- (regex|c++)"^_.*" 0.80
+ (regex)"^ceph_ver__[0-9a-f]{40}@Base$" 0.87
+ (regex|c++)"^_.*" 0.87
+# (regex)"^__event_desc___.*" 0.87
+# (regex)"^__tp_event_signature___.*" 0.87
+# (regex)"^__tracepoint_.*" 0.87
CEPH_CONF_FILE_DEFAULT at Base 0.72.2
ceph_arch_intel_pclmul at Base 0.79
ceph_arch_intel_probe at Base 0.72.2
@@ -107,9 +110,12 @@ librados.so.2 librados2 #MINVER#
#MISSING: 0.79# is_kernel_secret at Base 0.72.2
mime_decode_from_qp at Base 0.72.2
mime_encode_as_qp at Base 0.72.2
+ module_has_param at Base 0.87
+ module_load at Base 0.87
pem_key at Base 0.72.2
pipe_cloexec at Base 0.72.2
rados_aio_append at Base 0.72.2
+ rados_aio_cancel at Base 0.87
rados_aio_create_completion at Base 0.72.2
rados_aio_flush at Base 0.72.2
rados_aio_flush_async at Base 0.72.2
@@ -171,7 +177,7 @@ librados.so.2 librados2 #MINVER#
rados_ioctx_pool_stat at Base 0.72.2
rados_ioctx_selfmanaged_snap_create at Base 0.72.2
rados_ioctx_selfmanaged_snap_remove at Base 0.72.2
- rados_ioctx_snap_rollback at Base 0.80~rc1
+#MISSING: 0.87# rados_ioctx_snap_rollback at Base 0.80~rc1
rados_ioctx_selfmanaged_snap_rollback at Base 0.72.2
rados_ioctx_selfmanaged_snap_set_write_ctx at Base 0.72.2
rados_ioctx_set_namespace at Base 0.72.2
@@ -181,6 +187,7 @@ librados.so.2 librados2 #MINVER#
rados_ioctx_snap_list at Base 0.72.2
rados_ioctx_snap_lookup at Base 0.72.2
rados_ioctx_snap_remove at Base 0.72.2
+ rados_ioctx_snap_rollback at Base 0.80~rc1
rados_ioctx_snap_set_read at Base 0.72.2
rados_list_lockers at Base 0.72.2
rados_lock_exclusive at Base 0.72.2
diff --git a/debian/libradosstriper-dev.install b/debian/libradosstriper-dev.install
new file mode 100644
index 0000000..7cf0559
--- /dev/null
+++ b/debian/libradosstriper-dev.install
@@ -0,0 +1,5 @@
+usr/include/radosstriper/libradosstriper.h
+usr/include/radosstriper/libradosstriper.hpp
+usr/lib/*/libradosstriper.a
+#usr/lib/*/libradosstriper.la
+usr/lib/*/libradosstriper.so
diff --git a/debian/libradosstriper1.install b/debian/libradosstriper1.install
new file mode 100644
index 0000000..742549b
--- /dev/null
+++ b/debian/libradosstriper1.install
@@ -0,0 +1 @@
+usr/lib/*/libradosstriper.so.*
diff --git a/debian/libradosstriper1.symbols b/debian/libradosstriper1.symbols
new file mode 100644
index 0000000..09b0e38
--- /dev/null
+++ b/debian/libradosstriper1.symbols
@@ -0,0 +1,36 @@
+libradosstriper.so.1 libradosstriper1 #MINVER#
+ (regex|c++)"^_.*" 0.87
+ rados_striper_aio_append at Base 0.87
+ rados_striper_aio_flush at Base 0.87
+ rados_striper_aio_read at Base 0.87
+ rados_striper_aio_write at Base 0.87
+ rados_striper_aio_write_full at Base 0.87
+ rados_striper_append at Base 0.87
+ rados_striper_create at Base 0.87
+ rados_striper_destroy at Base 0.87
+ rados_striper_getxattr at Base 0.87
+ rados_striper_getxattrs at Base 0.87
+ rados_striper_getxattrs_end at Base 0.87
+ rados_striper_getxattrs_next at Base 0.87
+ rados_striper_multi_aio_create_completion at Base 0.87
+ rados_striper_multi_aio_get_return_value at Base 0.87
+ rados_striper_multi_aio_is_complete at Base 0.87
+ rados_striper_multi_aio_is_complete_and_cb at Base 0.87
+ rados_striper_multi_aio_is_safe at Base 0.87
+ rados_striper_multi_aio_is_safe_and_cb at Base 0.87
+ rados_striper_multi_aio_release at Base 0.87
+ rados_striper_multi_aio_wait_for_complete at Base 0.87
+ rados_striper_multi_aio_wait_for_complete_and_cb at Base 0.87
+ rados_striper_multi_aio_wait_for_safe at Base 0.87
+ rados_striper_multi_aio_wait_for_safe_and_cb at Base 0.87
+ rados_striper_read at Base 0.87
+ rados_striper_remove at Base 0.87
+ rados_striper_rmxattr at Base 0.87
+ rados_striper_set_object_layout_object_size at Base 0.87
+ rados_striper_set_object_layout_stripe_count at Base 0.87
+ rados_striper_set_object_layout_stripe_unit at Base 0.87
+ rados_striper_setxattr at Base 0.87
+ rados_striper_stat at Base 0.87
+ rados_striper_trunc at Base 0.87
+ rados_striper_write at Base 0.87
+ rados_striper_write_full at Base 0.87
diff --git a/debian/librbd1.symbols b/debian/librbd1.symbols
index 6635713..e15c92c 100644
--- a/debian/librbd1.symbols
+++ b/debian/librbd1.symbols
@@ -1,5 +1,8 @@
librbd.so.1 librbd1 #MINVER#
- (regex|c++)"^_.*" 0.80
+ (regex|c++)"^_.*" 0.87
+# (regex)"^__event_desc___.*" 0.87
+# (regex)"^__tp_event_signature___.*" 0.87
+# (regex)"^__tracepoint_.*" 0.87
rbd_aio_create_completion at Base 0.72.2
rbd_aio_discard at Base 0.72.2
rbd_aio_flush at Base 0.72.2
diff --git a/debian/patches/arch.patch b/debian/patches/arch.patch
index f3d2e73..d50744d 100644
--- a/debian/patches/arch.patch
+++ b/debian/patches/arch.patch
@@ -1,4 +1,4 @@
-Last-Update: 2014-04-19
+Last-Update: 2014-10-19
Forwarded: not-needed
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
Description: use `dpkg-architecture` instead of `arch` to get build architecture
@@ -6,12 +6,14 @@ Description: use `dpkg-architecture` instead of `arch` to get build architecture
--- a/configure.ac
+++ b/configure.ac
-@@ -87,7 +87,7 @@ AM_CXXFLAGS="${AM_CXXFLAGS}"
+@@ -86,9 +86,9 @@
+
# Check for yasm
if yasm -f elf64 src/common/crc32c_intel_fast_asm.S -o /dev/null; then
echo 'we have a modern and working yasm'
-- if test `arch` = "x86_64"; then
-+ if test `dpkg-architecture -qDEB_BUILD_GNU_CPU` = "x86_64"; then
+- if test `arch` = "x86_64" ; then
++ if test `dpkg-architecture -qDEB_BUILD_GNU_CPU` = "x86_64" ; then
echo 'we are x86_64'
- AC_DEFINE([HAVE_GOOD_YASM_ELF64], [1], [we have a recent yasm and are x86_64])
- with_good_yasm=yes
+ arch_x32=0
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
+ #if defined(__x86_64__) && defined(__ILP32__)
diff --git a/debian/patches/backfill-prio.patch b/debian/patches/backfill-prio.patch
deleted file mode 100644
index c163aeb..0000000
--- a/debian/patches/backfill-prio.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-commit f317684
-Merge: c339343 0985ae7
-Author: Sage Weil <sage at inktank.com>
-Date: Tue Jun 24 02:09:49 2014
-
- Merge pull request #1979 from ceph/wip-backfill-priority
-
- osd: improve backfill prioritization
-
- Reviewed-by: Samuel Just <sam.just at inktank.com>
-
---- a/src/common/AsyncReserver.h
-+++ b/src/common/AsyncReserver.h
-@@ -32,8 +32,9 @@
- template <typename T>
- class AsyncReserver {
- Finisher *f;
- unsigned max_allowed;
-+ unsigned min_priority;
- Mutex lock;
-
- map<unsigned, list<pair<T, Context*> > > queues;
- map<T, pair<unsigned, typename list<pair<T, Context*> >::iterator > > queue_pointers;
-@@ -41,9 +42,11 @@
-
- void do_queues() {
- typename map<unsigned, list<pair<T, Context*> > >::reverse_iterator it;
- for (it = queues.rbegin();
-- it != queues.rend() && in_progress.size() < max_allowed;
-+ it != queues.rend() &&
-+ in_progress.size() < max_allowed &&
-+ it->first >= min_priority;
- ++it) {
- while (in_progress.size() < max_allowed &&
- !it->second.empty()) {
- pair<T, Context*> p = it->second.front();
-@@ -56,17 +59,27 @@
- }
- public:
- AsyncReserver(
- Finisher *f,
-- unsigned max_allowed)
-- : f(f), max_allowed(max_allowed), lock("AsyncReserver::lock") {}
-+ unsigned max_allowed,
-+ unsigned min_priority = 0)
-+ : f(f),
-+ max_allowed(max_allowed),
-+ min_priority(min_priority),
-+ lock("AsyncReserver::lock") {}
-
- void set_max(unsigned max) {
- Mutex::Locker l(lock);
- max_allowed = max;
- do_queues();
- }
-
-+ void set_min_priority(unsigned min) {
-+ Mutex::Locker l(lock);
-+ min_priority = min;
-+ do_queues();
-+ }
-+
- /**
- * Requests a reservation
- *
- * Note, on_reserved may be called following cancel_reservation. Thus,
---- a/src/common/config_opts.h
-+++ b/src/common/config_opts.h
-@@ -389,8 +389,11 @@
-
- // Maximum number of backfills to or from a single osd
- OPTION(osd_max_backfills, OPT_U64, 10)
-
-+// Minimum recovery priority (255 = max, smaller = lower)
-+OPTION(osd_min_recovery_priority, OPT_INT, 0)
-+
- // Refuse backfills when OSD full ratio is above this value
- OPTION(osd_backfill_full_ratio, OPT_FLOAT, 0.85)
-
- // Seconds to wait before retrying refused backfills
---- a/src/messages/MBackfillReserve.h
-+++ b/src/messages/MBackfillReserve.h
-@@ -27,10 +27,10 @@
- REQUEST = 0,
- GRANT = 1,
- REJECT = 2,
- };
-- int type;
-- unsigned priority;
-+ uint32_t type;
-+ uint32_t priority;
-
- MBackfillReserve()
- : Message(MSG_OSD_BACKFILL_RESERVE, HEAD_VERSION, COMPAT_VERSION),
- query_epoch(0), type(-1), priority(-1) {}
---- a/src/osd/OSD.cc
-+++ b/src/osd/OSD.cc
-@@ -218,10 +218,12 @@
- backfill_request_timer(cct, backfill_request_lock, false),
- last_tid(0),
- tid_lock("OSDService::tid_lock"),
- reserver_finisher(cct),
-- local_reserver(&reserver_finisher, cct->_conf->osd_max_backfills),
-- remote_reserver(&reserver_finisher, cct->_conf->osd_max_backfills),
-+ local_reserver(&reserver_finisher, cct->_conf->osd_max_backfills,
-+ cct->_conf->osd_min_recovery_priority),
-+ remote_reserver(&reserver_finisher, cct->_conf->osd_max_backfills,
-+ cct->_conf->osd_min_recovery_priority),
- pg_temp_lock("OSDService::pg_temp_lock"),
- map_cache_lock("OSDService::map_lock"),
- map_cache(cct->_conf->osd_map_cache_size),
- map_bl_cache(cct->_conf->osd_map_cache_size),
-@@ -7870,8 +7872,9 @@
- const char** OSD::get_tracked_conf_keys() const
- {
- static const char* KEYS[] = {
- "osd_max_backfills",
-+ "osd_min_recovery_priority",
- "osd_op_complaint_time", "osd_op_log_threshold",
- "osd_op_history_size", "osd_op_history_duration",
- "osd_map_cache_size",
- "osd_map_max_advance",
-@@ -7889,8 +7892,12 @@
- if (changed.count("osd_max_backfills")) {
- service.local_reserver.set_max(cct->_conf->osd_max_backfills);
- service.remote_reserver.set_max(cct->_conf->osd_max_backfills);
- }
-+ if (changed.count("osd_min_recovery_priority")) {
-+ service.local_reserver.set_min_priority(cct->_conf->osd_min_recovery_priority);
-+ service.remote_reserver.set_min_priority(cct->_conf->osd_min_recovery_priority);
-+ }
- if (changed.count("osd_op_complaint_time") ||
- changed.count("osd_op_log_threshold")) {
- op_tracker.set_complaint_and_threshold(cct->_conf->osd_op_complaint_time,
- cct->_conf->osd_op_log_threshold);
---- a/src/osd/OSD.h
-+++ b/src/osd/OSD.h
-@@ -629,13 +629,8 @@
- return t;
- }
-
- // -- backfill_reservation --
-- enum {
-- BACKFILL_LOW = 0, // backfill non-degraded PGs
-- BACKFILL_HIGH = 1, // backfill degraded PGs
-- RECOVERY = AsyncReserver<spg_t>::MAX_PRIORITY // log based recovery
-- };
- Finisher reserver_finisher;
- AsyncReserver<spg_t> local_reserver;
- AsyncReserver<spg_t> remote_reserver;
-
---- a/src/osd/PG.cc
-+++ b/src/osd/PG.cc
-@@ -1885,8 +1885,28 @@
-
- dirty_info = true;
- }
-
-+unsigned PG::get_recovery_priority()
-+{
-+ // a higher value -> a higher priority
-+ return OSD_RECOVERY_PRIORITY_MAX;
-+}
-+
-+unsigned PG::get_backfill_priority()
-+{
-+ // a higher value -> a higher priority
-+
-+ // degraded: 200 + num missing replicas
-+ if (is_degraded()) {
-+ assert(pool.info.size > acting.size());
-+ return 200 + (pool.info.size - acting.size());
-+ }
-+
-+ // baseline
-+ return 1;
-+}
-+
- void PG::finish_recovery(list<Context*>& tfin)
- {
- dout(10) << "finish_recovery" << dendl;
- assert(info.last_complete == info.last_update);
-@@ -5852,15 +5872,14 @@
- ConnectionRef con = pg->osd->get_con_osd_cluster(
- backfill_osd_it->osd, pg->get_osdmap()->get_epoch());
- if (con) {
- if (con->has_feature(CEPH_FEATURE_BACKFILL_RESERVATION)) {
-- unsigned priority = pg->is_degraded() ? OSDService::BACKFILL_HIGH
-- : OSDService::BACKFILL_LOW;
- pg->osd->send_message_osd_cluster(
- new MBackfillReserve(
- MBackfillReserve::REQUEST,
- spg_t(pg->info.pgid.pgid, backfill_osd_it->shard),
-- pg->get_osdmap()->get_epoch(), priority),
-+ pg->get_osdmap()->get_epoch(),
-+ pg->get_backfill_priority()),
- con.get());
- } else {
- post_event(RemoteBackfillReserved());
- }
-@@ -5927,10 +5946,10 @@
- pg->osd->local_reserver.request_reservation(
- pg->info.pgid,
- new QueuePeeringEvt<LocalBackfillReserved>(
- pg, pg->get_osdmap()->get_epoch(),
-- LocalBackfillReserved()), pg->is_degraded() ? OSDService::BACKFILL_HIGH
-- : OSDService::BACKFILL_LOW);
-+ LocalBackfillReserved()),
-+ pg->get_backfill_priority());
- }
-
- void PG::RecoveryState::WaitLocalBackfillReserved::exit()
- {
-@@ -5995,9 +6014,10 @@
- pg->osd->remote_reserver.request_reservation(
- pg->info.pgid,
- new QueuePeeringEvt<RemoteRecoveryReserved>(
- pg, pg->get_osdmap()->get_epoch(),
-- RemoteRecoveryReserved()), OSDService::RECOVERY);
-+ RemoteRecoveryReserved()),
-+ pg->get_recovery_priority());
- }
-
- boost::statechart::result
- PG::RecoveryState::RepWaitRecoveryReserved::react(const RemoteRecoveryReserved &evt)
-@@ -6136,9 +6156,10 @@
- pg->osd->local_reserver.request_reservation(
- pg->info.pgid,
- new QueuePeeringEvt<LocalRecoveryReserved>(
- pg, pg->get_osdmap()->get_epoch(),
-- LocalRecoveryReserved()), OSDService::RECOVERY);
-+ LocalRecoveryReserved()),
-+ pg->get_recovery_priority());
- }
-
- void PG::RecoveryState::WaitLocalRecoveryReserved::exit()
- {
---- a/src/osd/PG.h
-+++ b/src/osd/PG.h
-@@ -776,8 +776,13 @@
-
- bool needs_recovery() const;
- bool needs_backfill() const;
-
-+ /// get log recovery reservation priority
-+ unsigned get_recovery_priority();
-+ /// get backfill reservation priority
-+ unsigned get_backfill_priority();
-+
- void mark_clean(); ///< mark an active pg clean
-
- bool _calc_past_interval_range(epoch_t *start, epoch_t *end);
- void generate_past_intervals();
---- a/src/osd/osd_types.h
-+++ b/src/osd/osd_types.h
-@@ -55,8 +55,12 @@
- #define CEPH_OSD_FEATURE_INCOMPAT_SNAPMAPPER CompatSet::Feature(10, "snapmapper")
- #define CEPH_OSD_FEATURE_INCOMPAT_SHARDS CompatSet::Feature(11, "sharded objects")
-
-
-+/// max recovery priority for MBackfillReserve
-+#define OSD_RECOVERY_PRIORITY_MAX 255u
-+
-+
- typedef hobject_t collection_list_handle_t;
-
- typedef uint8_t shard_id_t;
-
diff --git a/debian/patches/bash-completion.patch b/debian/patches/bash-completion.patch
deleted file mode 100644
index 48e7585..0000000
--- a/debian/patches/bash-completion.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-Last-Update: 2014-05-13
-Forwarded: not-needed
-Origin: upstream, 8dd1190dd544cd87f565384f060ff9efcb37516f
-Author: Wido den Hollander <wido at 42on.com>
-Description: Improve Bash completion for various tools
-
---- a/src/bash_completion/ceph
-+++ b/src/bash_completion/ceph
-@@ -16,6 +16,7 @@ _ceph()
- COMPREPLY=()
- cur="${COMP_WORDS[COMP_CWORD]}"
- prev="${COMP_WORDS[COMP_CWORD-1]}"
-+ prevprev="${COMP_WORDS[COMP_CWORD-2]}"
-
- if [[ ${cur} == -* ]] ; then
- COMPREPLY=( $(compgen -W "--conf -c --name --id -m --version -s --status -w --watch -o --out-file -i --in-file" -- ${cur}) )
-@@ -32,29 +33,41 @@ _ceph()
- return 0
- ;;
- auth)
-- COMPREPLY=( $(compgen -W "list add del" -- ${cur}) )
-+ COMPREPLY=( $(compgen -W "list add del print_key print-key export get get-key import get-or-create get-or-create-key" -- ${cur}) )
- return 0
- ;;
- pg)
-- COMPREPLY=( $(compgen -W "stat dump getmap map send_pg_creates scrub deep-scrub repair" -- ${cur}) )
-+ COMPREPLY=( $(compgen -W "stat dump dump_json dump_stuck force_create_pg getmap map send_pg_creates scrub deep-scrub repair" -- ${cur}) )
- return 0
- ;;
- osd)
-- COMPREPLY=( $(compgen -W "tell stat pool dump getmaxosd tree getmap getcrushmap lspools" -- ${cur}) )
-+ COMPREPLY=( $(compgen -W "stat pool dump getmaxosd tree getmap getcrushmap lspools reweight-by-utilization trash tier" -- ${cur}) )
- return 0
- ;;
- mon)
-- COMPREPLY=( $(compgen -W "tell stat getmap" -- ${cur}) )
-+ COMPREPLY=( $(compgen -W "stat getmap add remove dump" -- ${cur}) )
- return 0
- ;;
- mds)
-- COMPREPLY=( $(compgen -W "tell stat stat getmap dump compat" -- ${cur}) )
-+ COMPREPLY=( $(compgen -W "stat stat getmap dump compat" -- ${cur}) )
- return 0
- ;;
-- *)
-- COMPREPLY=( $(compgen -W "osd mon mds pg auth" -- ${cur}) )
-+ pool)
-+ COMPREPLY=( $(compgen -W "create delete rename stats set set-quota get rmsnap mksnap" -- ${cur}) )
- return 0
-- ;;
-+ ;;
-+ health)
-+ COMPREPLY=( $(compgen -W "detail" -- ${cur}) )
-+ return 0
-+ ;;
-+ tier)
-+ COMPREPLY=( $(compgen -W "remove cache-mode" -- ${cur}) )
-+ return 0
-+ ;;
-+ ceph)
-+ COMPREPLY=( $(compgen -W "osd mon mds pg auth health df" -- ${cur}) )
-+ return 0
-+ ;;
- esac
- }
- complete -F _ceph ceph
---- a/src/bash_completion/rados
-+++ b/src/bash_completion/rados
-@@ -31,7 +31,7 @@ _rados()
- COMPREPLY=( $(compgen -A hostname ${cur}) )
- return 0
- ;;
-- *)
-+ rados)
- COMPREPLY=( $(compgen -W "lspools mkpool rmpool df ls chown get put create rm listxattr getxattr setxattr rmxattr stat mapext lssnap mksnap rmsnap rollback bench" -- ${cur}) )
- return 0
- ;;
---- a/src/bash_completion/rbd
-+++ b/src/bash_completion/rbd
-@@ -32,11 +32,15 @@ _rbd()
- return 0
- ;;
- snap)
-- COMPREPLY=( $(compgen -W "ls create rollback rm" -- ${cur}) )
-+ COMPREPLY=( $(compgen -W "ls create rollback rm purge protect unprotect" -- ${cur}) )
- return 0
- ;;
-- *)
-- COMPREPLY=( $(compgen -W "ls list info create resize rm export import cp copy mv rename snap watch map unmap showmapped" -- ${cur}) )
-+ lock)
-+ COMPREPLY=( $(compgen -W "list add remove" -- ${cur}) )
-+ return 0
-+ ;;
-+ rbd)
-+ COMPREPLY=( $(compgen -W "ls list info create clone flatten resize rm export import diff export-diff import-diff cp copy mv rename snap watch lock bench-write map unmap showmapped" -- ${cur}) )
- return 0
- ;;
- esac
diff --git a/debian/patches/bug-8342.patch b/debian/patches/bug-8342.patch
deleted file mode 100644
index 0de003b..0000000
--- a/debian/patches/bug-8342.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Last-update: 2014-05-20
-Origin: upstream, https://github.com/ceph/ceph/pull/1846/
-Bug-Ceph: http://tracker.ceph.com/issues/8342
-Author: Sage Weil <sage at inktank.com>
-Description: [Fixes:#8342]
- * init-ceph: continue loop immediately on daemon start failure
- If we fail to start the daemon, skip the post_start and other steps.
- * if we fail to set an OSD's crush position, continue
- If we fail to set the CRUSH position for one OSD, continue on to try
- starting others, just as we do when we fail to start the daemon.
-
---- a/src/init-ceph.in
-+++ b/src/init-ceph.in
-@@ -361,9 +361,13 @@
- osd_location=`$osd_location_hook --cluster $cluster --id $id --type osd`
- get_conf osd_weight "" "osd crush initial weight"
- defaultweight="$(df -P -k $osd_data/. | tail -1 | awk '{ print sprintf("%.2f",$2/1073741824) }')"
- get_conf osd_keyring "$osd_data/keyring" "keyring"
-- do_cmd "timeout 30 $BINDIR/ceph -c $conf --name=osd.$id --keyring=$osd_keyring osd crush create-or-move -- $id ${osd_weight:-${defaultweight:-1}} $osd_location"
-+ do_cmd_okfail "timeout 30 $BINDIR/ceph -c $conf --name=osd.$id --keyring=$osd_keyring osd crush create-or-move -- $id ${osd_weight:-${defaultweight:-1}} $osd_location"
-+ if [ "$ERR" != "0" ]; then
-+ EXIT_STATUS=$ERR
-+ continue
-+ fi
- fi
- fi
-
- echo Starting Ceph $name on $host...
-@@ -375,8 +379,9 @@
- [ -n "$pre_start" ] && do_cmd "$pre_start"
- do_cmd_okfail "$cmd" $runarg
- if [ "$ERR" != "0" ]; then
- EXIT_STATUS=$ERR
-+ continue
- fi
-
- if [ "$type" = "mon" ]; then
- # this will only work if we are using default paths
diff --git a/debian/patches/bug-8624a.patch b/debian/patches/bug-8624a.patch
deleted file mode 100644
index 1295cf4..0000000
--- a/debian/patches/bug-8624a.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From d6f68132cead3b03027827c621864d5fc322daca Mon Sep 17 00:00:00 2001
-From: Joao Eduardo Luis <joao.luis at inktank.com>
-Date: Fri, 20 Jun 2014 16:13:28 +0100
-Subject: [PATCH] mon: MDSMonitor: do not allow ec pools to be used for data or
- metadata
-
-Fixes: #8624
-
-Signed-off-by: Joao Eduardo Luis <joao.luis at inktank.com>
----
- src/mon/MDSMonitor.cc | 31 +++++++++++++++++++++++++++++++
- 1 file changed, 31 insertions(+)
-
---- a/src/mon/MDSMonitor.cc
-+++ b/src/mon/MDSMonitor.cc
-@@ -1068,6 +1068,14 @@ bool MDSMonitor::prepare_command(MMonCom
- ss << "pool '" << poolname << "' does not exist";
- }
- }
-+ const pg_pool_t *p = mon->osdmon()->osdmap.get_pg_pool(poolid);
-+ assert(p != NULL);
-+ if (p->is_erasure()) {
-+ // I'm sorry Dave, I'm afraid I can't do that
-+ r = -EINVAL;
-+ poolid = -1;
-+ ss << "can't use pool '" << poolname << "' as it's an erasure-code pool";
-+ }
- if (poolid >= 0) {
- pending_mdsmap.add_data_pool(poolid);
- ss << "added data pool " << poolid << " to mdsmap";
-@@ -1116,6 +1124,29 @@ bool MDSMonitor::prepare_command(MMonCom
- r = -EINVAL;
- goto out;
- }
-+
-+ const pg_pool_t *p = mon->osdmon()->osdmap.get_pg_pool(data);
-+ if (!p) {
-+ ss << "pool id '" << data << "' does not exist";
-+ r = -ENOENT;
-+ goto out;
-+ } else if (p->is_erasure()) {
-+ ss << "pool id '" << data << "' is an erasure-code pool";
-+ r = -EINVAL;
-+ goto out;
-+ }
-+
-+ p = mon->osdmon()->osdmap.get_pg_pool(metadata);
-+ if (!p) {
-+ ss << "pool id '" << metadata << "' does not exist";
-+ r = -ENOENT;
-+ goto out;
-+ } else if (p->is_erasure()) {
-+ ss << "pool id '" << metadata << "' is an erasure-code pool";
-+ r = -EINVAL;
-+ goto out;
-+ }
-+
- string sure;
- cmd_getval(g_ceph_context, cmdmap, "sure", sure);
- if (sure != "--yes-i-really-mean-it") {
diff --git a/debian/patches/bug-8624b.patch b/debian/patches/bug-8624b.patch
deleted file mode 100644
index 9fdb025..0000000
--- a/debian/patches/bug-8624b.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2b007c25bc6d383cec0f9fd0e76f0742c2e9a671 Mon Sep 17 00:00:00 2001
-From: Joao Eduardo Luis <joao.luis at inktank.com>
-Date: Mon, 23 Jun 2014 23:27:05 +0100
-Subject: [PATCH] mon: MDSMonitor: print pool name along with id during 'newfs'
- errors
-
-Signed-off-by: Joao Eduardo Luis <joao.luis at inktank.com>
----
- src/mon/MDSMonitor.cc | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
---- a/src/mon/MDSMonitor.cc
-+++ b/src/mon/MDSMonitor.cc
-@@ -1131,7 +1131,10 @@ bool MDSMonitor::prepare_command(MMonCom
- r = -ENOENT;
- goto out;
- } else if (p->is_erasure()) {
-- ss << "pool id '" << data << "' is an erasure-code pool";
-+ const char *pn = mon->osdmon()->osdmap.get_pool_name(data);
-+ assert(pn != NULL);
-+ ss << "pool '" << pn << "' (id '" << data << "')"
-+ << " is an erasure-code pool";
- r = -EINVAL;
- goto out;
- }
-@@ -1142,7 +1145,10 @@ bool MDSMonitor::prepare_command(MMonCom
- r = -ENOENT;
- goto out;
- } else if (p->is_erasure()) {
-- ss << "pool id '" << metadata << "' is an erasure-code pool";
-+ const char *pn = mon->osdmon()->osdmap.get_pool_name(metadata);
-+ assert(pn != NULL);
-+ ss << "pool '" << pn << "' (id '" << metadata << "')"
-+ << " is an erasure-code pool";
- r = -EINVAL;
- goto out;
- }
diff --git a/debian/patches/bug-8821.patch b/debian/patches/bug-8821.patch
deleted file mode 100644
index d2abce2..0000000
--- a/debian/patches/bug-8821.patch
+++ /dev/null
@@ -1,353 +0,0 @@
-From 0f87c55355ace952befce773498a3b5d8fac4f01 Mon Sep 17 00:00:00 2001
-From: Josh Durgin <josh.durgin at inktank.com>
-Date: Wed, 16 Jul 2014 13:29:29 -0700
-Subject: [PATCH 1/3] librbd: use order-agnostic default stripe parameters
-
- This way the default striping style of splitting into
- object-sized chunks still works with non-default orders
- specified.
-
- Signed-off-by: Josh Durgin <josh.durgin at inktank.com>
-
-Subject: [PATCH 2/3] rbd: remove accidental repeated option
-
- --stripe-count is already parsed above this
-
- Signed-off-by: Josh Durgin <josh.durgin at inktank.com>
-
-Subject: [PATCH 3/3] rbd: respect rbd_default_* parameters
-
- Treat rbd_default_{format,order,stripe_unit,stripe_count} as defaults for
- the usual arguments for specifying those properties.
-
- librbd::create() is affected by rbd_default_format, so we need to
- explicitly override it if --image-format is set. The rest of the
- parameters are passed explicitly when they are used, so their rbd_default
- equivalents don't matter.
-
- Fixes: #8821
- Signed-off-by: Josh Durgin <josh.durgin at inktank.com>
-
---- a/src/common/config_opts.h
-+++ b/src/common/config_opts.h
-@@ -749,10 +749,10 @@
- * affected by rbd_default_order.
- */
- OPTION(rbd_default_format, OPT_INT, 1)
- OPTION(rbd_default_order, OPT_INT, 22)
--OPTION(rbd_default_stripe_count, OPT_U64, 1) // changing requires stripingv2 feature
--OPTION(rbd_default_stripe_unit, OPT_U64, 4194304) // changing to non-object size requires stripingv2 feature
-+OPTION(rbd_default_stripe_count, OPT_U64, 0) // changing requires stripingv2 feature
-+OPTION(rbd_default_stripe_unit, OPT_U64, 0) // changing to non-object size requires stripingv2 feature
- OPTION(rbd_default_features, OPT_INT, 3) // 1 for layering, 3 for layering+stripingv2. only applies to format 2 images
-
- OPTION(nss_db_path, OPT_STR, "") // path to nss db
-
---- a/src/rbd.cc
-+++ b/src/rbd.cc
-@@ -2344,9 +2344,10 @@
-
- const char *poolname = NULL;
- uint64_t size = 0; // in bytes
- int order = 0;
-- bool format_specified = false, output_format_specified = false;
-+ bool format_specified = false,
-+ output_format_specified = false;
- int format = 1;
- uint64_t features = RBD_FEATURE_LAYERING;
- const char *imgname = NULL, *snapname = NULL, *destname = NULL,
- *dest_poolname = NULL, *dest_snapname = NULL, *path = NULL,
-@@ -2358,9 +2359,9 @@
- long long stripe_unit = 0, stripe_count = 0;
- long long bench_io_size = 4096, bench_io_threads = 16, bench_bytes = 1 << 30;
- string bench_pattern = "seq";
-
-- std::string val;
-+ std::string val, parse_err;
- std::ostringstream err;
- long long sizell = 0;
- std::vector<const char*>::iterator i;
- for (i = args.begin(); i != args.end(); ) {
-@@ -2374,15 +2375,17 @@
- return 0;
- } else if (ceph_argparse_flag(args, i, "--new-format", (char*)NULL)) {
- format = 2;
- format_specified = true;
-- } else if (ceph_argparse_withint(args, i, &format, &err, "--image-format",
-+ } else if (ceph_argparse_witharg(args, i, &val, "--image-format",
- (char*)NULL)) {
-- if (!err.str().empty()) {
-- cerr << "rbd: " << err.str() << std::endl;
-+ format = strict_strtol(val.c_str(), 10, &parse_err);
-+ if (!parse_err.empty()) {
-+ cerr << "rbd: error parsing --image-format: " << parse_err << std::endl;
- return EXIT_FAILURE;
- }
- format_specified = true;
-+ g_conf->set_val_or_die("rbd_default_format", val.c_str());
- } else if (ceph_argparse_witharg(args, i, &val, "-p", "--pool", (char*)NULL)) {
- poolname = strdup(val.c_str());
- } else if (ceph_argparse_witharg(args, i, &val, "--dest-pool", (char*)NULL)) {
- dest_poolname = strdup(val.c_str());
-@@ -2415,9 +2418,8 @@
- } else if (ceph_argparse_withlonglong(args, i, &bench_io_size, &err, "--io-size", (char*)NULL)) {
- } else if (ceph_argparse_withlonglong(args, i, &bench_io_threads, &err, "--io-threads", (char*)NULL)) {
- } else if (ceph_argparse_withlonglong(args, i, &bench_bytes, &err, "--io-total", (char*)NULL)) {
- } else if (ceph_argparse_witharg(args, i, &bench_pattern, &err, "--io-pattern", (char*)NULL)) {
-- } else if (ceph_argparse_withlonglong(args, i, &stripe_count, &err, "--stripe-count", (char*)NULL)) {
- } else if (ceph_argparse_witharg(args, i, &val, "--path", (char*)NULL)) {
- path = strdup(val.c_str());
- } else if (ceph_argparse_witharg(args, i, &val, "--dest", (char*)NULL)) {
- destname = strdup(val.c_str());
-@@ -2440,11 +2442,11 @@
- progress = false;
- } else if (ceph_argparse_flag(args, i , "--allow-shrink", (char *)NULL)) {
- resize_allow_shrink = true;
- } else if (ceph_argparse_witharg(args, i, &val, "--format", (char *) NULL)) {
-- std::string err;
-- long long ret = strict_strtoll(val.c_str(), 10, &err);
-- if (err.empty()) {
-+ long long ret = strict_strtoll(val.c_str(), 10, &parse_err);
-+ if (parse_err.empty()) {
-+ g_conf->set_val_or_die("rbd_default_format", val.c_str());
- format = ret;
- format_specified = true;
- cerr << "rbd: using --format for specifying the rbd image format is"
- << " deprecated, use --image-format instead"
-@@ -2556,8 +2558,19 @@
- break;
- }
- }
-
-+ /* get defaults from rbd_default_* options to keep behavior consistent with
-+ manual short-form options */
-+ if (!format_specified)
-+ format = g_conf->rbd_default_format;
-+ if (!order)
-+ order = g_conf->rbd_default_order;
-+ if (!stripe_unit)
-+ stripe_unit = g_conf->rbd_default_stripe_unit;
-+ if (!stripe_count)
-+ stripe_count = g_conf->rbd_default_stripe_count;
-+
- if (format_specified && opt_cmd != OPT_IMPORT && opt_cmd != OPT_CREATE) {
- cerr << "rbd: image format can only be set when "
- << "creating or importing an image" << std::endl;
- return EXIT_FAILURE;
---- /dev/null
-+++ b/src/test/cli-integration/rbd/defaults.t
-@@ -0,0 +1,214 @@
-+Plain create with various options specified via usual cli arguments
-+===================================================================
-+ $ rbd create -s 1 test
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rb.0.*", (glob)
-+ "format": 1,
-+ "name": "test",
-+ "object_size": 4194304,
-+ "objects": 1,
-+ "order": 22,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 --order 20 test
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rb.0.*", (glob)
-+ "format": 1,
-+ "name": "test",
-+ "object_size": 1048576,
-+ "objects": 1,
-+ "order": 20,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --image-format 2
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 4194304,
-+ "objects": 1,
-+ "order": 22,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --image-format 2 --order 20
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 1048576,
-+ "objects": 1,
-+ "order": 20,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --image-format 2 --stripe-unit 1048576 --stripe-count 8
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 4194304,
-+ "objects": 1,
-+ "order": 22,
-+ "size": 1048576,
-+ "stripe_count": 8,
-+ "stripe_unit": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+
-+Format 2 Usual arguments with custom rbd_default_* params
-+=========================================================
-+ $ rbd create -s 1 test --image-format 2 --stripe-unit 1048576 --stripe-count 8 --rbd-default-order 21
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 2097152,
-+ "objects": 1,
-+ "order": 21,
-+ "size": 1048576,
-+ "stripe_count": 8,
-+ "stripe_unit": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --image-format 2 --stripe-unit 1048576 --stripe-count 8 --order 23 --rbd-default-order 20
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 8388608,
-+ "objects": 1,
-+ "order": 23,
-+ "size": 1048576,
-+ "stripe_count": 8,
-+ "stripe_unit": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --image-format 2 --rbd-default-stripe-unit 1048576 --rbd-default-stripe-count 8
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 4194304,
-+ "objects": 1,
-+ "order": 22,
-+ "size": 1048576,
-+ "stripe_count": 8,
-+ "stripe_unit": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+
-+Format 1 Usual arguments with custom rbd_default_* params
-+=========================================================
-+ $ rbd create -s 1 test --rbd-default-order 20
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rb.0.*", (glob)
-+ "format": 1,
-+ "name": "test",
-+ "object_size": 1048576,
-+ "objects": 1,
-+ "order": 20,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --rbd-default-format 2
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 4194304,
-+ "objects": 1,
-+ "order": 22,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --rbd-default-format 2 --rbd-default-order 20
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 1048576,
-+ "objects": 1,
-+ "order": 20,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --rbd-default-format 2 --rbd-default-order 20 --rbd-default-features 1
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 1048576,
-+ "objects": 1,
-+ "order": 20,
-+ "size": 1048576
-+ }
-+ $ rbd rm test --no-progress
-+ $ rbd create -s 1 test --rbd-default-format 2 --stripe-unit 1048576 --stripe-count 8
-+ $ rbd info test --format json | python -mjson.tool
-+ {
-+ "block_name_prefix": "rbd_data.*", (glob)
-+ "features": [
-+ "layering",
-+ "striping"
-+ ],
-+ "format": 2,
-+ "name": "test",
-+ "object_size": 4194304,
-+ "objects": 1,
-+ "order": 22,
-+ "size": 1048576,
-+ "stripe_count": 8,
-+ "stripe_unit": 1048576
-+ }
-+ $ rbd rm test --no-progress
diff --git a/debian/patches/bug-9341.patch b/debian/patches/bug-9341.patch
deleted file mode 100644
index 1c35924..0000000
--- a/debian/patches/bug-9341.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-Last-update: 2014-05-20
-Forwarded: not-needed
-Origin: upstream, http://tracker.ceph.com/attachments/download/1388/0001-client-trim-unused-inodes-before-reconnecting-to-rec.patch
-Bug-Ceph: http://tracker.ceph.com/issues/9341
-From: Yan, Zheng <zyan at redhat.com>
-Description: dramatically (e.g seconds instead of hours) reduce rejoin (i.e. MDS restart) time.
-
---- a/src/client/Client.cc
-+++ b/src/client/Client.cc
-@@ -466,16 +466,21 @@
-
- // ===================
- // metadata cache stuff
-
--void Client::trim_cache()
-+void Client::trim_cache(unsigned max)
- {
-- ldout(cct, 20) << "trim_cache size " << lru.lru_get_size() << " max " << lru.lru_get_max() << dendl;
-+ if (max > lru.lru_get_max())
-+ max = lru.lru_get_max();
-+
-+ ldout(cct, 20) << "trim_cache size " << lru.lru_get_size() << " max " << max << dendl;
-+
- unsigned last = 0;
- while (lru.lru_get_size() != last) {
- last = lru.lru_get_size();
-
-- if (lru.lru_get_size() <= lru.lru_get_max()) break;
-+ if (lru.lru_get_size() <= max)
-+ break;
-
- // trim!
- Dentry *dn = static_cast<Dentry*>(lru.lru_expire());
- if (!dn)
-@@ -483,8 +488,24 @@
-
- trim_dentry(dn);
- }
-
-+ // notify kernel to invalidate top level directory entries. As a side effect,
-+ // unused inodes underneath these entries get pruned.
-+ if (dentry_invalidate_cb && lru.lru_get_size() > max) {
-+ if (root->dir) {
-+ for (ceph::unordered_map<string, Dentry*>::iterator p = root->dir->dentries.begin();
-+ p != root->dir->dentries.end();
-+ ++p) {
-+ if (p->second->inode)
-+ _schedule_invalidate_dentry_callback(p->second, false);
-+ }
-+ } else {
-+ // This seems unnatural, as long as we are holding caps they must be on
-+ // some descendent of the root, so why don't we have the root open?`
-+ }
-+ }
-+
- // hose root?
- if (lru.lru_get_size() == 0 && root && root->get_num_ref() == 0 && inode_map.size() == 1) {
- ldout(cct, 15) << "trim_cache trimmed root " << root << dendl;
- delete root;
-@@ -1977,10 +1998,15 @@
- int newstate = mdsmap->get_state(p->first);
- if (!mdsmap->is_up(p->first) ||
- mdsmap->get_inst(p->first) != p->second->inst) {
- messenger->mark_down(p->second->con);
-- if (mdsmap->is_up(p->first))
-+ if (mdsmap->is_up(p->first)) {
- p->second->inst = mdsmap->get_inst(p->first);
-+ // When new MDS starts to take over, notify kernel to trim unused entries
-+ // in its dcache/icache. Hopefully, the kernel will release some unused
-+ // inodes before the new MDS enters reconnect state.
-+ trim_cache(1);
-+ }
- } else if (oldstate == newstate)
- continue; // no change
-
- if (newstate == MDSMap::STATE_RECONNECT &&
-@@ -2016,8 +2042,16 @@
- {
- int mds = session->mds_num;
- ldout(cct, 10) << "send_reconnect to mds." << mds << dendl;
-
-+ // trim unused caps to reduce MDS's cache rejoin time
-+ trim_cache(1);
-+
-+ if (session->release) {
-+ session->release->put();
-+ session->release = NULL;
-+ }
-+
- MClientReconnect *m = new MClientReconnect;
-
- // i have an open session.
- ceph::unordered_set<inodeno_t> did_snaprealm;
---- a/src/client/Client.h
-+++ b/src/client/Client.h
-@@ -392,9 +392,9 @@
- int fill_stat(Inode *in, struct stat *st, frag_info_t *dirstat=0, nest_info_t *rstat=0);
- void touch_dn(Dentry *dn);
-
- // trim cache.
-- void trim_cache();
-+ void trim_cache(unsigned max=-1U);
- void trim_dentry(Dentry *dn);
- void trim_caps(MetaSession *s, int max);
-
- void dump_inode(Formatter *f, Inode *in, set<Inode*>& did, bool disconnected);
diff --git a/debian/patches/client-sleep1.patch b/debian/patches/client-sleep1.patch
deleted file mode 100644
index f3b2367..0000000
--- a/debian/patches/client-sleep1.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From b8aa58af793bea4ed1a150ac5bf554fc894774f1 Mon Sep 17 00:00:00 2001
-From: "Yan, Zheng" <zheng.z.yan at intel.com>
-Date: Fri, 11 Apr 2014 15:34:25 +0800
-Subject: [PATCH] client: drop dirty/flushing caps if auth MDS' session is
- reset
-
-Signed-off-by: Yan, Zheng <zheng.z.yan at intel.com>
----
- src/client/Client.cc | 21 ++++++++++++++++++---
- 1 file changed, 18 insertions(+), 3 deletions(-)
-
---- a/src/client/Client.cc
-+++ b/src/client/Client.cc
-@@ -3108,14 +3108,29 @@
- while (!in->caps.empty())
- remove_cap(in->caps.begin()->second, true);
- }
-
--void Client::remove_session_caps(MetaSession *mds)
-+void Client::remove_session_caps(MetaSession *s)
- {
-- while (mds->caps.size()) {
-- Cap *cap = *mds->caps.begin();
-+ ldout(cct, 10) << "remove_session_caps mds." << s->mds_num << dendl;
-+
-+ while (s->caps.size()) {
-+ Cap *cap = *s->caps.begin();
-+ Inode *in = cap->inode;
-+ int dirty_caps = 0;
-+ if (in->auth_cap == cap)
-+ dirty_caps = in->dirty_caps | in->flushing_caps;
- remove_cap(cap, false);
-+ if (dirty_caps) {
-+ lderr(cct) << "remove_session_caps still has dirty|flushing caps on " << *in << dendl;
-+ if (in->flushing_caps)
-+ num_flushing_caps--;
-+ in->flushing_caps = 0;
-+ in->dirty_caps = 0;
-+ put_inode(in);
-+ }
- }
-+ sync_cond.Signal();
- }
-
- void Client::trim_caps(MetaSession *s, int max)
- {
diff --git a/debian/patches/client-sleep2.patch b/debian/patches/client-sleep2.patch
deleted file mode 100644
index 67ce24a..0000000
--- a/debian/patches/client-sleep2.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 70ab0793cc7d2d75ac942efb677a0b3297d3792a Mon Sep 17 00:00:00 2001
-From: "Yan, Zheng" <zheng.z.yan at intel.com>
-Date: Fri, 11 Apr 2014 16:31:29 +0800
-Subject: [PATCH] client: wake up cap waiters if MDS session is reset
-
-Signed-off-by: Yan, Zheng <zheng.z.yan at intel.com>
----
- src/client/Client.cc | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/src/client/Client.cc
-+++ b/src/client/Client.cc
-@@ -2385,8 +2385,11 @@
-
- int Client::get_caps(Inode *in, int need, int want, int *phave, loff_t endoff)
- {
- while (1) {
-+ if (!in->is_any_caps())
-+ return -ESTALE;
-+
- if (endoff > 0 &&
- (endoff >= (loff_t)in->max_size ||
- endoff > (loff_t)(in->size << 1)) &&
- endoff > (loff_t)in->wanted_max_size) {
-@@ -3116,11 +3119,15 @@
- while (s->caps.size()) {
- Cap *cap = *s->caps.begin();
- Inode *in = cap->inode;
- int dirty_caps = 0;
-- if (in->auth_cap == cap)
-+ if (in->auth_cap == cap) {
- dirty_caps = in->dirty_caps | in->flushing_caps;
-+ in->wanted_max_size = 0;
-+ in->requested_max_size = 0;
-+ }
- remove_cap(cap, false);
-+ signal_cond_list(in->waitfor_caps);
- if (dirty_caps) {
- lderr(cct) << "remove_session_caps still has dirty|flushing caps on " << *in << dendl;
- if (in->flushing_caps)
- num_flushing_caps--;
diff --git a/debian/patches/client-sleep3.patch b/debian/patches/client-sleep3.patch
deleted file mode 100644
index edf1a36..0000000
--- a/debian/patches/client-sleep3.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 3e41f92b8439fcae33f412c7b833a7233e1faecb Mon Sep 17 00:00:00 2001
-From: "Yan, Zheng" <zheng.z.yan at intel.com>
-Date: Fri, 11 Apr 2014 16:42:42 +0800
-Subject: [PATCH] client: cleanup unsafe requests if MDS session is reset
-
-Signed-off-by: Yan, Zheng <zheng.z.yan at intel.com>
----
- src/client/Client.cc | 22 ++++++++++++++--------
- 1 file changed, 14 insertions(+), 8 deletions(-)
-
---- a/src/client/Client.cc
-+++ b/src/client/Client.cc
-@@ -2123,17 +2123,23 @@
- void Client::kick_requests_closed(MetaSession *session)
- {
- ldout(cct, 10) << "kick_requests_closed for mds." << session->mds_num << dendl;
- for (map<ceph_tid_t, MetaRequest*>::iterator p = mds_requests.begin();
-- p != mds_requests.end();
-- ++p) {
-- if (p->second->mds == session->mds_num) {
-- if (p->second->caller_cond) {
-- p->second->kick = true;
-- p->second->caller_cond->Signal();
-+ p != mds_requests.end(); ) {
-+ MetaRequest *req = p->second;
-+ ++p;
-+ if (req->mds == session->mds_num) {
-+ if (req->caller_cond) {
-+ req->kick = true;
-+ req->caller_cond->Signal();
-+ }
-+ req->item.remove_myself();
-+ if (req->got_unsafe) {
-+ lderr(cct) << "kick_requests_closed removing unsafe request " << req->get_tid() << dendl;
-+ req->unsafe_item.remove_myself();
-+ mds_requests.erase(req->get_tid());
-+ put_request(req);
- }
-- p->second->item.remove_myself();
-- p->second->unsafe_item.remove_myself();
- }
- }
- assert(session->requests.empty());
- assert(session->unsafe_requests.empty());
diff --git a/debian/patches/firefly-latest.patch b/debian/patches/firefly-latest.patch
deleted file mode 100644
index b042b23..0000000
--- a/debian/patches/firefly-latest.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Last-Update: 2014-10-02
-Forwarded: not-needed
-Origin: upstream
-Author: Dmitry Smirnov <onlyjob at member.fsf.org>
-Description: fixes from "firefly" branch since 0.80.6 release
-
---- a/src/common/config.cc
-+++ b/src/common/config.cc
-@@ -946,9 +946,9 @@
- return -ENOSYS;
- }
-
- static const char *CONF_METAVARIABLES[] =
-- { "cluster", "type", "name", "host", "num", "id", "pid" };
-+ { "cluster", "type", "name", "host", "num", "id", "pid", "cctid" };
- static const int NUM_CONF_METAVARIABLES =
- (sizeof(CONF_METAVARIABLES) / sizeof(CONF_METAVARIABLES[0]));
-
- void md_config_t::expand_all_meta()
-@@ -1058,8 +1058,10 @@
- else if (var == "id")
- out += name.get_id().c_str();
- else if (var == "pid")
- out += stringify(getpid());
-+ else if (var == "cctid")
-+ out += stringify((unsigned long long)this);
- else
- assert(0); // unreachable
- expanded = true;
- }
diff --git a/debian/patches/modules.patch b/debian/patches/modules.patch
index 301d253..9a749cb 100644
--- a/debian/patches/modules.patch
+++ b/debian/patches/modules.patch
@@ -9,7 +9,8 @@ Description: Mark modules as actually being modules
--- a/src/cls/Makefile.am
+++ b/src/cls/Makefile.am
-@@ -45,7 +45,7 @@ radoslib_LTLIBRARIES += libcls_replica_l
+@@ -44,9 +44,9 @@
+ radoslib_LTLIBRARIES += libcls_replica_log.la
libcls_user_la_SOURCES = cls/user/cls_user.cc
libcls_user_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS)
@@ -18,37 +19,45 @@ Description: Mark modules as actually being modules
radoslib_LTLIBRARIES += libcls_user.la
libcls_rgw_la_SOURCES = \
+ cls/rgw/cls_rgw.cc \
--- a/src/erasure-code/jerasure/Makefile.am
+++ b/src/erasure-code/jerasure/Makefile.am
-@@ -40,7 +40,7 @@ libec_jerasure_generic_la_CXXFLAGS= ${AM
- -Ierasure-code/jerasure/gf-complete/include \
- -Ierasure-code/jerasure/jerasure/include
+@@ -42,9 +42,9 @@
+ libec_jerasure_generic_la_CXXFLAGS= ${AM_CXXFLAGS} \
+ -I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ -I$(srcdir)/erasure-code/jerasure/jerasure/include
libec_jerasure_generic_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
-libec_jerasure_generic_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0
+libec_jerasure_generic_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared
if LINUX
libec_jerasure_generic_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*'
endif
-@@ -63,7 +63,7 @@ libec_jerasure_sse3_la_CXXFLAGS= ${AM_CX
- -Ierasure-code/jerasure/gf-complete/include \
- -Ierasure-code/jerasure/jerasure/include
+
+@@ -65,9 +65,9 @@
+ ${INTEL_SSSE3_FLAGS} \
+ -I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ -I$(srcdir)/erasure-code/jerasure/jerasure/include
libec_jerasure_sse3_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
-libec_jerasure_sse3_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0
+libec_jerasure_sse3_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared
if LINUX
libec_jerasure_sse3_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*'
endif
-@@ -90,7 +90,7 @@ libec_jerasure_sse4_la_CXXFLAGS= ${AM_CX
- -Ierasure-code/jerasure/gf-complete/include \
- -Ierasure-code/jerasure/jerasure/include
+
+@@ -92,9 +92,9 @@
+ ${INTEL_SSE4_2_FLAGS} \
+ -I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ -I$(srcdir)/erasure-code/jerasure/jerasure/include
libec_jerasure_sse4_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
-libec_jerasure_sse4_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0
+libec_jerasure_sse4_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared
if LINUX
libec_jerasure_sse4_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*'
endif
-@@ -102,7 +102,7 @@ libec_jerasure_la_SOURCES = \
- libec_jerasure_la_CFLAGS = ${AM_CFLAGS}
+
+@@ -104,9 +104,9 @@
+ erasure-code/jerasure/ErasureCodePluginSelectJerasure.cc
+ libec_jerasure_la_CFLAGS = ${AM_CFLAGS}
libec_jerasure_la_CXXFLAGS= ${AM_CXXFLAGS}
libec_jerasure_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
-libec_jerasure_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0
@@ -56,3 +65,4 @@ Description: Mark modules as actually being modules
if LINUX
libec_jerasure_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*'
endif
+
diff --git a/debian/patches/p2139.patch b/debian/patches/p2139.patch
deleted file mode 100644
index 6886c6a..0000000
--- a/debian/patches/p2139.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4eb18dd487da4cb621dcbecfc475fc0871b356ac Mon Sep 17 00:00:00 2001
-From: Ma Jianpeng <jianpeng.ma at intel.com>
-Date: Wed, 23 Jul 2014 10:10:38 -0700
-Subject: [PATCH] os/FileJournal: Update the journal header when closing
- journal
-
-When closing journal, it should check must_write_header and update
-journal header if must_write_header alreay set.
-It can reduce the nosense journal-replay after restarting osd.
-
-Signed-off-by: Ma Jianpeng <jianpeng.ma at intel.com>
-Reviewed-by: Sage Weil <sage at redhat.com>
----
- src/os/FileJournal.cc | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/src/os/FileJournal.cc
-+++ b/src/os/FileJournal.cc
-@@ -543,8 +543,9 @@
- stop_writer();
-
- // close
- assert(writeq_empty());
-+ assert(!must_write_header);
- assert(fd >= 0);
- VOID_TEMP_FAILURE_RETRY(::close(fd));
- fd = -1;
- }
-@@ -1101,9 +1102,9 @@
- dout(10) << "write_thread_entry start" << dendl;
- while (1) {
- {
- Mutex::Locker locker(writeq_lock);
-- if (writeq.empty()) {
-+ if (writeq.empty() && !must_write_header) {
- if (write_stop)
- break;
- dout(20) << "write_thread_entry going to sleep" << dendl;
- writeq_cond.Wait(writeq_lock);
diff --git a/debian/patches/rbdmap1-mount.patch b/debian/patches/rbdmap1-mount.patch
deleted file mode 100644
index d406a15..0000000
--- a/debian/patches/rbdmap1-mount.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-Forwarded: yes
-Applied-Upstream: yes
-Author: Dmitry Smirnov <onlyjob at member.fsf.org>
-Description: rbdmap: per-device mount (Closes: #8538)
-
-`/etc/init.d/rbdmap start` was doing `mount -a`. Although (arguably)
-`mount -a -O _netdev` could be less disruptive, it's not RBD mapping job to
-mount unrelated devices and potentially do it at the wrong time.
-
-Solution is to call `mount {device}` which works as expected and mounts
-device even if it given in form `mount /dev/rbd/pool/imagename` while
-`/etc/fstab` uses UUID or LABEL notation.
-
-Furthermore this commit
-
- * fixes global exit code (it was always 0): now it is 0 only when
- all devices were (un)mounted successfully; otherwise non-zero.
- * replaces `mount -a` with per-device post-mapping `mount {dev}`
- * show mapping progress using LSB functions per device instead of for
- {start|stop} invocation.
- * capture output of `(u)mount` (if any) and report it as "info".
-
-Signed-off-by: Dmitry Smirnov <onlyjob at member.fsf.org>
----
- src/init-rbdmap | 74 ++++++++++++++++++++++++++++++++++++---------------------
- 1 file changed, 47 insertions(+), 27 deletions(-)
-
---- a/src/init-rbdmap
-+++ b/src/init-rbdmap
-@@ -18,7 +18,7 @@
- # Description: Ceph RBD Mapping
- ### END INIT INFO
-
--DESC="RBD Mapping"
-+DESC="RBD Mapping:"
- RBDMAPFILE="/etc/ceph/rbdmap"
-
- . /lib/lsb/init-functions
-@@ -29,9 +29,7 @@ do_map() {
- exit 0
- fi
-
-- log_daemon_msg "Starting $DESC"
- # Read /etc/rbdtab to create non-existant mapping
-- newrbd=
- RET=0
- while read DEV PARAMS; do
- case "$DEV" in
-@@ -44,6 +42,10 @@ do_map() {
- DEV=rbd/$DEV
- ;;
- esac
-+ log_action_begin_msg "${DESC} '${DEV}'"
-+ newrbd=""
-+ MAP_RV=""
-+ RET_OP=0
- OIFS=$IFS
- IFS=','
- for PARAM in ${PARAMS[@]}; do
-@@ -51,39 +53,59 @@ do_map() {
- done
- IFS=$OIFS
- if [ ! -b /dev/rbd/$DEV ]; then
-- log_progress_msg $DEV
-- rbd map $DEV $CMDPARAMS
-- [ $? -ne "0" ] && RET=1
-- newrbd="yes"
-+ MAP_RV=$(rbd map $DEV $CMDPARAMS 2>&1)
-+ if [ $? -eq 0 ]; then
-+ newrbd="yes"
-+ else
-+ RET=$((${RET}+$?))
-+ RET_OP=1
-+ fi
-+ fi
-+ log_action_end_msg ${RET_OP} "${MAP_RV}"
-+
-+ if [ "$newrbd" ]; then
-+ ## Mount new rbd
-+ MNT_RV=""
-+ mount --fake /dev/rbd/$DEV >>/dev/null 2>&1 \
-+ && MNT_RV=$(mount -v /dev/rbd/$DEV 2>&1)
-+ [ -n "${MNT_RV}" ] && log_action_msg "mount: ${MNT_RV}"
- fi
- done < $RBDMAPFILE
-- log_end_msg $RET
-+ exit ${RET}
-
-- # Mount new rbd
-- if [ "$newrbd" ]; then
-- log_action_begin_msg "Mounting all filesystems"
-- mount -a
-- log_action_end_msg $?
-- fi
- }
-
- do_unmap() {
-- log_daemon_msg "Stopping $DESC"
- RET=0
-- # Recursive umount that depends /dev/rbd*
-- MNTDEP=$(findmnt --mtab | awk '$2 ~ /^\/dev\/rbd[0-9]*$/ {print $1}' | sort -r)
-- for MNT in $MNTDEP; do
-- umount $MNT
-- done
-- # Unmap all rbd device
-+ ## Unmount and unmap all rbd devices
- if ls /dev/rbd[0-9]* >/dev/null 2>&1; then
- for DEV in /dev/rbd[0-9]*; do
-- log_progress_msg $DEV
-- rbd unmap $DEV
-- [ $? -ne "0" ] && RET=1
-+ log_action_begin_msg "RBD un-mapping: '${DEV}'"
-+ UMNT_RV=""
-+ UMAP_RV=""
-+ RET_OP=0
-+ MNT=$(findmnt --mtab --source ${DEV} --noheadings | awk '{print $1'})
-+ if [ -n "${MNT}" ]; then
-+ log_action_cont_msg "un-mounting '${MNT}'"
-+ UMNT_RV=$(umount "${MNT}" 2>&1)
-+ fi
-+ if mountpoint -q "${MNT}"; then
-+ ## Un-mounting failed.
-+ RET_OP=1
-+ RET=$((${RET}+1))
-+ else
-+ ## Un-mapping.
-+ UMAP_RV=$(rbd unmap $DEV 2>&1)
-+ if [ $? -ne 0 ]; then
-+ RET=$((${RET}+$?))
-+ RET_OP=1
-+ fi
-+ fi
-+ log_action_end_msg ${RET_OP} "${UMAP_RV}"
-+ [ -n "${UMNT_RV}" ] && log_action_msg "${UMNT_RV}"
- done
- fi
-- log_end_msg $RET
-+ exit ${RET}
- }
-
-
-@@ -114,5 +136,3 @@ case "$1" in
- exit 1
- ;;
- esac
--
--exit 0
diff --git a/debian/patches/rbdmap2-hooks.patch b/debian/patches/rbdmap2-hooks.patch
deleted file mode 100644
index c5c7926..0000000
--- a/debian/patches/rbdmap2-hooks.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-Forwarded: yes
-Applied-Upstream: yes
-From: Dmitry Smirnov <onlyjob at member.fsf.org>
-Description: rbdmap: per-device post-map/pre-unmap hooks
-
-There are cases when automatic (un-)mounting of file system on RBD is not
-enough. Some services may need to be started when RBD device becomes
-available (mapped) as well as it may be desirable to stop services in order
-to release file system before unmapping RBD device.
-
-File system(s) on RBD is not the only use case scenario. RBD devices may be
-used as block devices in which case `/etc/fstab` is not sufficient to
-perform action upon mapping RBD device. A handler script (hook) can be
-useful to properly release RBD device before unmapping, etc.
-
-Pre-unmap hooks can be important for clean shut down and for re-exporting
-RBD device(s) as (iSCSI,AoE,DRBD) etc.
-
-This commit introduces support for per-device hooks to perform per-device
-post-map/pre-unmap actions. If hook named like "poolname/imagename" (same
-as in `/etc/ceph/rbdmap` file) is found in
-
- /etc/ceph/rbd.d/poolname/imagename
-
-it is executed as
-
- /etc/ceph/rbd.d/poolname/imagename map poolname/imagename
-
-following after attempt to mount file system (if relevant `fstab` entry
-exist) following mapping of corresponding RBD device.
-
-Before un-mounting file system and un-mapping RBD device hook is called as
-follows:
-
- /etc/ceph/rbd.d/poolname/imagename unmap poolname/imagename
-
-Second argument is intentional to allow multiple RBD devices to share the
-same hook (symlinked under different names).
-
-Sample hook to use RBD device as "mdadm" hot spare may look like this:
-
-~~~~
-DEV="$2"
-case "$1" in
- "map")
- mdadm /dev/md2 --add --write-mostly "${DEV}"
- ;;
- "unmap")
- mdadm /dev/md2 --fail "${DEV}"
- sleep 2
- mdadm /dev/md2 --remove "${DEV}"
- ;;
-esac
-~~~~
-
-Signed-off-by: Dmitry Smirnov <onlyjob at member.fsf.org>
----
- src/init-rbdmap | 19 ++++++++++++++++++-
- 1 file changed, 18 insertions(+), 1 deletion(-)
-
---- a/src/init-rbdmap
-+++ b/src/init-rbdmap
-@@ -64,11 +64,17 @@ do_map() {
- log_action_end_msg ${RET_OP} "${MAP_RV}"
-
- if [ "$newrbd" ]; then
-- ## Mount new rbd
-+ ## Mount new rbd
- MNT_RV=""
- mount --fake /dev/rbd/$DEV >>/dev/null 2>&1 \
- && MNT_RV=$(mount -v /dev/rbd/$DEV 2>&1)
- [ -n "${MNT_RV}" ] && log_action_msg "mount: ${MNT_RV}"
-+
-+ ## post-mapping
-+ if [ -x "/etc/ceph/rbd.d/${DEV}" ]; then
-+ log_action_msg "RBD Running post-map hook '/etc/ceph/rbd.d/${DEV}'"
-+ /etc/ceph/rbd.d/${DEV} map "/dev/rbd/${DEV}"
-+ fi
- fi
- done < $RBDMAPFILE
- exit ${RET}
-@@ -80,6 +86,17 @@ do_unmap() {
- ## Unmount and unmap all rbd devices
- if ls /dev/rbd[0-9]* >/dev/null 2>&1; then
- for DEV in /dev/rbd[0-9]*; do
-+ ## pre-unmapping
-+ for L in $(find /dev/rbd -type l); do
-+ LL="${L##/dev/rbd/}"
-+ if [ "$(readlink -f $L)" = "${DEV}" ] \
-+ && [ -x "/etc/ceph/rbd.d/${LL}" ]; then
-+ log_action_msg "RBD pre-unmap: '${DEV}' hook '/etc/ceph/rbd.d/${LL}'"
-+ /etc/ceph/rbd.d/${LL} unmap "$L"
-+ break
-+ fi
-+ done
-+
- log_action_begin_msg "RBD un-mapping: '${DEV}'"
- UMNT_RV=""
- UMAP_RV=""
diff --git a/debian/patches/sample.ceph.conf.patch b/debian/patches/sample.ceph.conf.patch
index 0e0eacd..f3bbcb5 100644
--- a/debian/patches/sample.ceph.conf.patch
+++ b/debian/patches/sample.ceph.conf.patch
@@ -1,369 +1,204 @@
-Last-Update: 2014-05-23
-Forwarded: yes
+Last-Update: 2014-10-19
+Forwarded: no
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
-Description: sample.ceph.conf update:
+Description: sample.ceph.conf updates:
* corrected URLs.
- * added [client] section.
* more options and descriptions.
- * filestore settings were moved under [osd].
- * cephx settings to reflect lack of support for authentication in kernel RBD client.
- * many minor corrections and updates.
--- a/src/sample.ceph.conf
+++ b/src/sample.ceph.conf
-@@ -31,7 +31,7 @@
+@@ -30,9 +30,9 @@
+ # $name ; Expands to $type.$id.
# ; Example: /var/run/ceph/$cluster-$name.asok
[global]
-### http://ceph.com/docs/master/rados/configuration/general-config-ref/
-+### http://ceph.com/docs/firefly/rados/configuration/general-config-ref/
++### http://ceph.com/docs/giant/rados/configuration/general-config-ref/
;fsid = {UUID} # use `uuidgen` to generate your own UUID
;public network = 192.168.0.0/24
-@@ -51,8 +51,8 @@
+ ;cluster network = 192.168.0.0/24
+@@ -50,10 +50,10 @@
+ # (Default: 0)
;max open files = 131072
-### http://ceph.com/docs/master/rados/operations/authentication
-### http://ceph.com/docs/master/rados/configuration/auth-config-ref/
-+### http://ceph.com/docs/firefly/rados/operations/authentication
-+### http://ceph.com/docs/firefly/rados/configuration/auth-config-ref/
++### http://ceph.com/docs/giant/rados/operations/authentication
++### http://ceph.com/docs/giant/rados/configuration/auth-config-ref/
# If enabled, the Ceph Storage Cluster daemons (i.e., ceph-mon, ceph-osd,
# and ceph-mds) must authenticate with each other.
-@@ -78,7 +78,11 @@
- # comprising the Ceph Storage Cluster.
- # Type: Boolean (optional)
- # (Default: false)
-- cephx require signatures = true ; everywhere possible
-+ ;cephx require signatures = true
-+
-+ # kernel RBD client do not support authentication yet:
-+ cephx cluster require signatures = true
-+ cephx service require signatures = false
-
- # The path to the keyring file.
- # Type: String (optional)
-@@ -86,13 +90,13 @@
+ # Type: String (optional); Valid settings are "cephx" or "none".
+@@ -89,9 +89,9 @@
+ # Default: /etc/ceph/$cluster.$name.keyring,/etc/ceph/$cluster.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin
;keyring = /etc/ceph/$cluster.$name.keyring
-### http://ceph.com/docs/master/rados/configuration/pool-pg-config-ref/
-+### http://ceph.com/docs/firefly/rados/configuration/pool-pg-config-ref/
++### http://ceph.com/docs/giant/rados/configuration/pool-pg-config-ref/
## Replication level, number of data copies.
# Type: 32-bit Integer
- # (Default: 2)
-- ;osd pool default size = 2
-+ ;osd pool default size = 3
-
- ## Replication level in degraded state, less than 'osd pool default size' value.
- # Sets the minimum number of written replicas for objects in the
-@@ -102,7 +106,7 @@
- # operating in degraded mode.
- # Type: 32-bit Integer
- # (Default: 0), which means no particular minimum. If 0, minimum is size - (size / 2).
-- ;osd pool default min size = 1
-+ ;osd pool default min size = 2
-
- ## Ensure you have a realistic number of placement groups. We recommend
- ## approximately 100 per OSD. E.g., total number of OSDs multiplied by 100
-@@ -114,14 +118,14 @@
- # default value is the same as pg_num with mkpool.
- # Type: 32-bit Integer
- # (Default: 8)
-- ;osd pool default pg num = 100
-+ ;osd pool default pg num = 128
-
- # Description: The default number of placement groups for placement for a
- # pool. The default value is the same as pgp_num with mkpool.
- # PG and PGP should be equal (for now).
- # Type: 32-bit Integer
- # (Default: 8)
-- ;osd pool default pgp num = 100
-+ ;osd pool default pgp num = 128
-
- # The default CRUSH ruleset to use when creating a pool
- # Type: 32-bit Integer
-@@ -135,15 +139,22 @@
+@@ -138,9 +138,9 @@
+ # (Default: 1) Typically a host containing one or more Ceph OSD Daemons.
;osd crush chooseleaf type = 1
--### http://ceph.com/docs/bobtail/rados/configuration/log-and-debug-ref/
-+### http://ceph.com/docs/firefly/rados/troubleshooting/log-and-debug/
+-### http://ceph.com/docs/master/rados/troubleshooting/log-and-debug/
++### http://ceph.com/docs/giant/rados/troubleshooting/log-and-debug/
-+ # The location of the logging file for your cluster.
-+ # Type: String
-+ # Required: No
- # Default: /var/log/ceph/$cluster-$name.log
- ;log file = /var/log/ceph/$cluster-$name.log
-
-+ # Determines if logging messages should appear in syslog.
-+ # Type: Boolean
-+ # Required: No
-+ # (Default: false)
+ # The location of the logging file for your cluster.
+ # Type: String
+ # Required: No
+@@ -153,9 +153,9 @@
+ # (Default: false)
;log to syslog = true
-### http://ceph.com/docs/master/rados/configuration/ms-ref/
-+### http://ceph.com/docs/firefly/rados/configuration/ms-ref/
++### http://ceph.com/docs/giant/rados/configuration/ms-ref/
# Enable if you want your daemons to bind to IPv6 address instead of
# IPv4 ones. (Not required if you specify a daemon or cluster IP.)
-@@ -151,29 +162,13 @@
- # (Default: false)
- ;ms bind ipv6 = true
-
--
--### http://ceph.com/docs/master/rados/configuration/filestore-config-ref/
--
-- # The maximum interval in seconds for synchronizing the filestore.
-- # Type: Double (optional)
-- # (Default: 5)
-- ;filestore max sync interval = 5
--
-- # Use object map for XATTRS. Set to true for ext4 file systems only.
-- # Type: Boolean (optional)
-- # (Default: false)
-- ;filestore xattr use omap = true
--
--### http://ceph.com/docs/master/rados/configuration/journal-ref/
--
- ##################
+ # Type: Boolean
+@@ -166,10 +166,10 @@
## Monitors
## You need at least one. You need at least three if you want to
## tolerate any node failures. Always create an odd number.
[mon]
--### http://ceph.com/docs/argonaut/config-ref/mon-config/
-### http://ceph.com/docs/master/rados/configuration/mon-config-ref/
--### http://ceph.com/docs/dumpling/rados/configuration/mon-osd-interaction/
-+### http://ceph.com/docs/firefly/rados/configuration/mon-config-ref/
-+### http://ceph.com/docs/firefly/rados/configuration/mon-osd-interaction/
+-### http://ceph.com/docs/master/rados/configuration/mon-osd-interaction/
++### http://ceph.com/docs/giant/rados/configuration/mon-config-ref/
++### http://ceph.com/docs/giant/rados/configuration/mon-osd-interaction/
# The IDs of initial monitors in a cluster during startup.
# If specified, Ceph requires an odd number of monitors to form an
-@@ -185,7 +180,7 @@
- ;mon host = cephhost01,cephhost02
- ;mon addr = 192.168.0.101,192.168.0.102
-
-- # The monitor’s data location
-+ # The monitor's data location
- # Default: /var/lib/ceph/mon/$cluster-$id
- ;mon data = /var/lib/ceph/mon/$name
-
-@@ -197,7 +192,7 @@
- # Exponential backoff for clock drift warnings
- # Type: Float
- # (Default: 5)
-- ;mon clock drift warn backoff = 30 ; Tell the monitor to backoff from this warning for 30 seconds
-+ ;mon clock drift warn backoff = 30 # Tell the monitor to backoff from this warning for 30 seconds
-
- # The percentage of disk space used before an OSD is considered full.
- # Type: Float
-@@ -209,8 +204,19 @@
- # (Default: .85)
- ;mon osd nearfull ratio = .85
-
-+ # The number of seconds Ceph waits before marking a Ceph OSD
-+ # Daemon "down" and "out" if it doesn't respond.
-+ # Type: 32-bit Integer
-+ # (Default: 300)
-+ ;mon osd down out interval = 300
-+
-+ # The grace period in seconds before declaring unresponsive Ceph OSD
-+ # Daemons "down".
-+ # Type: 32-bit Integer
-+ # (Default: 900)
-+ ;mon osd report timeout = 300
+ # initial quorum (e.g., 3).
+@@ -215,9 +215,9 @@
+ # Type: 32-bit Integer
+ # (Default: 900)
+ ;mon osd report timeout = 300
--### http://ceph.com/docs/next/rados/troubleshooting/log-and-debug/
-+### http://ceph.com/docs/firefly/rados/troubleshooting/log-and-debug/
+-### http://ceph.com/docs/master/rados/troubleshooting/log-and-debug/
++### http://ceph.com/docs/giant/rados/troubleshooting/log-and-debug/
# logging, for debugging monitor crashes, in order of
# their likelihood of being helpful :)
-@@ -239,16 +245,28 @@
+ ;debug ms = 1
+@@ -237,16 +237,20 @@
+ ;[mon.gamma]
+ ; host = gamma
+ ; mon addr = 192.168.0.12:6789
+
++ # The maximum number of simultaneous scrub operations for a Ceph OSD Daemon.
++ # Type: 32-bit Int
++ # (Default: 1)
++ ;osd max scrubs = 2
+
+ ##################
+ ## Metadata servers
+ # You must deploy at least one metadata server to use CephFS. There is
# experimental support for running multiple metadata servers. Do not run
# multiple metadata servers in production.
[mds]
--### http://ceph.com/docs/argonaut/config-ref/mds-config/
-### http://ceph.com/docs/master/cephfs/mds-config-ref/
-+### http://ceph.com/docs/firefly/cephfs/mds-config-ref/
++### http://ceph.com/docs/giant/cephfs/mds-config-ref/
# where the mds keeps it's secret encryption keys
;keyring = /var/lib/ceph/mds/$name/keyring
-+ # Determines whether a 'ceph-mds' daemon should poll and
-+ # replay the log of an active MDS (hot standby).
-+ # Type: Boolean
-+ # (Default: false)
-+ ;mds standby replay = true
-+
- ; mds logging to debug issues.
- ;debug ms = 1
- ;debug mds = 20
-+ ;debug journaler = 20
-+
-+ # The number of inodes to cache.
-+ # Type: 32-bit Integer
-+ # (Default: 100000)
-+ ;mds cache size = 250000
-
-+ ;mds mem max = 1048576 # KB
-
- ;[mds.alpha]
- ; host = alpha
-@@ -261,8 +279,7 @@
+@@ -278,9 +282,9 @@
+ ## osd
# You need at least one. Two or more if you want data to be replicated.
# Define as many as you like.
[osd]
--### http://ceph.com/docs/argonaut/config-ref/osd-config/
--### http://ceph.com/docs/bobtail/rados/configuration/osd-config-ref/
-+### http://ceph.com/docs/firefly/rados/configuration/osd-config-ref/
+-### http://ceph.com/docs/master/rados/configuration/osd-config-ref/
++### http://ceph.com/docs/giant/rados/configuration/osd-config-ref/
# The path to the OSDs data.
# You must create the directory when deploying Ceph.
-@@ -282,6 +299,10 @@
- # (Default: 5)
- ;osd recovery max active = 3
-
-+ # The maximum number of simultaneous scrub operations for a Ceph OSD Daemon.
-+ # Type: 32-bit Int
-+ # (Default: 1)
-+ ;osd max scrubs = 2
-
- # You may add settings for mkcephfs so that it will create and mount
- # the file system for you. Remove the comment `#` character for
-@@ -303,7 +324,7 @@
- ## disks. You can use a file under the osd data dir if need be
- ## (e.g. /data/$name/journal), but it will be slower than a
- ## separate disk or partition.
-- # The path to the OSD’s journal. This may be a path to a file or a block
-+ # The path to the OSD's journal. This may be a path to a file or a block
- # device (such as a partition of an SSD). If it is a file, you must
- # create the directory to contain it.
- # We recommend using a drive separate from the osd data drive.
-@@ -311,7 +332,12 @@
- # Default: /var/lib/ceph/osd/$cluster-$id/journal
- ;osd journal = /var/lib/ceph/osd/$name/journal
+ # You should mount a drive for OSD data at this mount point.
+@@ -338,9 +342,9 @@
+ # Type: Boolean
+ # (Default: false)
+ ;osd check for log corruption = true
-### http://ceph.com/docs/master/rados/configuration/journal-ref/
-+ # Check log files for corruption. Can be computationally expensive.
-+ # Type: Boolean
-+ # (Default: false)
-+ ;osd check for log corruption = true
-+
-+### http://ceph.com/docs/firefly/rados/configuration/journal-ref/
++### http://ceph.com/docs/giant/rados/configuration/journal-ref/
# The size of the journal in megabytes. If this is 0,
# and the journal is a block device, the entire block device is used.
-@@ -321,28 +347,47 @@
- # (Default: 5120)
- # Recommended: Begin with 1GB. Should be at least twice the product
- # of the expected speed multiplied by "filestore max sync interval".
-- ;osd journal size = 1000 ; journal size, in megabytes
-+ ;osd journal size = 2048 ; journal size, in megabytes
-
- ## If you want to run the journal on a tmpfs, disable DirectIO
- # Enables direct i/o to the journal.
-- # Requires journal block align set to true.
-+ # Requires "journal block align" set to "true".
- # Type: Boolean
- # Required: Yes when using aio.
+ # Since v0.54, this is ignored if the journal is a block device,
+@@ -364,9 +368,9 @@
+ ;debug osd = 20
+ ;debug filestore = 20
+ ;debug journal = 20
+
+-### http://ceph.com/docs/master/rados/configuration/filestore-config-ref/
++### http://ceph.com/docs/giant/rados/configuration/filestore-config-ref/
+
+ # The maximum interval in seconds for synchronizing the filestore.
+ # Type: Double (optional)
+ # (Default: 5)
+@@ -377,14 +381,8 @@
+ # Required: No. Only used for btrfs.
# (Default: true)
- ;journal dio = false
+ ;filestore btrfs snap = false
-- # Check log files for corruption. Can be computationally expensive.
+- # Enables the filestore flusher.
- # Type: Boolean
+- # Required: No
- # (Default: false)
-- ;osd check for log corruption = true
+- ;filestore flusher = true
-
- # osd logging to debug osd issues, in order of likelihood of being helpful
- ;debug ms = 1
- ;debug osd = 20
- ;debug filestore = 20
- ;debug journal = 20
+ # Defines the maximum number of in progress operations the file store
+ # accepts before blocking on queuing new operations.
+ # Type: Integer
+ # Required: No. Minimal impact on performance.
+@@ -392,9 +390,9 @@
+ ;filestore queue max ops = 500
+
+ ## Filestore and OSD settings can be tweak to achieve better performance
+
+-### http://ceph.com/docs/master/rados/configuration/filestore-config-ref/#misc
++### http://ceph.com/docs/giant/rados/configuration/filestore-config-ref/#misc
+
+ # Min number of files in a subdir before merging into parent NOTE: A negative value means to disable subdir merging
+ # Type: Integer
+ # Required: No
+@@ -425,8 +423,9 @@
+ # Required: No;
+ # (Default: true)
+ ;osd crush update on start = false
-+### http://ceph.com/docs/firefly/rados/configuration/filestore-config-ref/
-+
-+ # The maximum interval in seconds for synchronizing the filestore.
-+ # Type: Double (optional)
-+ # (Default: 5)
-+ ;filestore max sync interval = 5
+
-+ # Enable snapshots for a btrfs filestore.
-+ # Type: Boolean
-+ # Required: No. Only used for btrfs.
-+ # (Default: true)
-+ ;filestore btrfs snap = false
-
-+ # Enables the filestore flusher.
-+ # Type: Boolean
-+ # Required: No
-+ # (Default: false)
-+ ;filestore flusher = true
-+
-+ # Defines the maximum number of in progress operations the file store
-+ # accepts before blocking on queuing new operations.
-+ # Type: Integer
-+ # Required: No. Minimal impact on performance.
-+ # (Default: 500)
-+ ;filestore queue max ops = 500
-
;[osd.0]
; host = delta
-@@ -362,3 +407,53 @@
- ;[osd.3]
- ; host = eta
- ; devs = /dev/sdy
-+
-+
-+##################
-+## client settings
-+[client]
-+
-+### http://ceph.com/docs/firefly/rbd/rbd-config-ref/
-+
-+ # Enable caching for RADOS Block Device (RBD).
-+ # Type: Boolean
-+ # Required: No
-+ # (Default: false)
-+ rbd cache = true
-+
-+ # The RBD cache size in bytes.
-+ # Type: 64-bit Integer
-+ # Required: No
-+ # (Default: 32 MiB)
-+ ;rbd cache size = 33554432
-+
-+ # The dirty limit in bytes at which the cache triggers write-back.
-+ # If 0, uses write-through caching.
-+ # Type: 64-bit Integer
-+ # Required: No
-+ # Constraint: Must be less than rbd cache size.
-+ # (Default: 24 MiB)
-+ ;rbd cache max dirty = 25165824
-+
-+ # The dirty target before the cache begins writing data to the data storage.
-+ # Does not block writes to the cache.
-+ # Type: 64-bit Integer
-+ # Required: No
-+ # Constraint: Must be less than rbd cache max dirty.
-+ # (Default: 16 MiB)
-+ ;rbd cache target dirty = 16777216
-+
-+ # The number of seconds dirty data is in the cache before writeback starts.
-+ # Type: Float
-+ # Required: No
-+ # (Default: 1.0)
-+ ;rbd cache max dirty age = 1.0
-+
-+ # Start out in write-through mode, and switch to write-back after the
-+ # first flush request is received. Enabling this is a conservative but
-+ # safe setting in case VMs running on rbd are too old to send flushes,
-+ # like the virtio driver in Linux before 2.6.32.
-+ # Type: Boolean
-+ # Required: No
-+ # (Default: false)
-+ ;rbd cache writethrough until flush = false
+
+ ;[osd.1]
+@@ -442,9 +441,9 @@
+ ##################
+ ## client settings
+ [client]
+
+-### http://ceph.com/docs/master/rbd/rbd-config-ref/
++### http://ceph.com/docs/giant/rbd/rbd-config-ref/
+
+ # Enable caching for RADOS Block Device (RBD).
+ # Type: Boolean
+ # Required: No
+@@ -491,9 +490,9 @@
+ ##################
+ ## radosgw client settings
+ [client.radosgw.gateway]
+
+-### http://ceph.com/docs/master/radosgw/config-ref/
++### http://ceph.com/docs/giant/radosgw/config-ref/
+
+ # Sets the location of the data files for Ceph Object Gateway.
+ # You must create the directory when deploying Ceph.
+ # We do not recommend changing the default.
diff --git a/debian/patches/series b/debian/patches/series
index 6c2bef9..48ad0fd 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,19 +1,5 @@
## Backported / Upstream
-firefly-latest.patch
-bug-8342.patch
-bug-8624a.patch
-bug-8624b.patch
-bug-8821.patch
-bug-9341.patch
-p2139.patch
-client-sleep1.patch
-client-sleep2.patch
-client-sleep3.patch
sleep-recover.patch
-backfill-prio.patch
-bash-completion.patch
-rbdmap1-mount.patch
-rbdmap2-hooks.patch
## Debian
rbdmap3-lazyumount.patch
diff --git a/debian/patches/sleep-recover.patch b/debian/patches/sleep-recover.patch
index bf89722..327db50 100644
--- a/debian/patches/sleep-recover.patch
+++ b/debian/patches/sleep-recover.patch
@@ -6,7 +6,7 @@ Description: fix fuse-client hang after wake-up from suspend.
--- a/src/client/Client.cc
+++ b/src/client/Client.cc
-@@ -9048,8 +9048,9 @@
+@@ -9325,8 +9325,9 @@
case MetaSession::STATE_OPEN:
ldout(cct, 1) << "reset from mds we were open; mark session as stale" << dendl;
diff --git a/debian/rules b/debian/rules
index b3b0ccb..6838203 100755
--- a/debian/rules
+++ b/debian/rules
@@ -18,6 +18,9 @@ extraopts += --disable-silent-rules
extraopts += --with-ocf --with-rest-bench --with-nss
extraopts += --with-debug
extraopts += --enable-cephfs-java
+extraopts += --with-babeltrace
+## do not build with lttng just yet, see #765842.
+#extraopts += --with-lttng
ifeq ($(DEB_HOST_ARCH), armel)
# armel supports ARMv4t or above instructions sets.
@@ -87,6 +90,7 @@ override_dh_strip:
dh_strip -pceph-common --dbg-package=ceph-common-dbg
dh_strip -pceph-fs-common --dbg-package=ceph-fs-common-dbg
dh_strip -plibrados2 --dbg-package=librados2-dbg
+ dh_strip -plibradosstriper1 --dbg-package=libradosstriper1-dbg
dh_strip -plibrbd1 --dbg-package=librbd1-dbg
dh_strip -plibcephfs1 --dbg-package=libcephfs1-dbg
dh_strip -pradosgw --dbg-package=radosgw-dbg
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ceph/ceph.git
More information about the Pkg-ceph-commits
mailing list