[Pkg-ceph-commits] [ceph] 04/04: New upstream release [0.80.1] + changelog summary
Dmitry Smirnov
onlyjob at moszumanska.debian.org
Wed May 14 01:52:32 UTC 2014
This is an automated email from the git hooks/post-receive script.
onlyjob pushed a commit to branch master
in repository ceph.
commit 0915fdf (HEAD, master)
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
Date: Tue May 13 03:29:24 2014
New upstream release [0.80.1] + changelog summary
---
debian/changelog | 10 ++
debian/patches/8113.patch | 389 --------------------------------------------
debian/patches/8175.patch | 66 --------
debian/patches/8282.patch | 32 ----
debian/patches/8291.patch | 132 ---------------
debian/patches/bp0001.patch | 28 ----
debian/patches/series | 7 +-
7 files changed, 11 insertions(+), 653 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index d805e87..16b3f42 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+ceph (0.80.1-1) unstable; urgency=low
+
+ * New upstream release [May 2014].
+ * Dropped all backported patches.
+ * New "sleep-recover" and "client-sleep[1,2,3]" patches to fix
+ fuse-client hang after resume from suspend [#8291]; thanks, Zheng Yan.
+ * New "gcj_search_path.patch" to find "jni.h" with gcj-jdk v4.9.0.
+
+ -- Dmitry Smirnov <onlyjob at debian.org> Wed, 14 May 2014 09:24:15 +1000
+
ceph (0.80-1) unstable; urgency=low
* New upstream release [May 2014].
diff --git a/debian/patches/8113.patch b/debian/patches/8113.patch
deleted file mode 100644
index 3a712c2..0000000
--- a/debian/patches/8113.patch
+++ /dev/null
@@ -1,389 +0,0 @@
-From 022d467b5d6b77c17b6fdaeec8369cae61e9e5a4 Mon Sep 17 00:00:00 2001
-From: David Zafman <david.zafman at inktank.com>
-Date: Mon, 21 Apr 2014 23:52:04 -0700
-Subject: [PATCH] osd, common: If agent_work() finds no objs to work on delay 5
- (default) secs
-
-Add config osd_agent_delay_time of 5 seconds
-Honor delay by ignoring agent_choose_mode() calls
-Add tier_delay to logger
-Treat restart after delay like we were previously idle
-
-Fixes: #8113
-Backport: firefly
-
-Signed-off-by: David Zafman <david.zafman at inktank.com>
-(cherry picked from commit b7d31e5f5952c631dd4172bcb825e77a13fc60bc)
-
---- a/src/common/config_opts.h
-+++ b/src/common/config_opts.h
-@@ -398,8 +398,9 @@
- // max agent flush ops
- OPTION(osd_agent_max_ops, OPT_INT, 4)
- OPTION(osd_agent_min_evict_effort, OPT_FLOAT, .1)
- OPTION(osd_agent_quantize_effort, OPT_FLOAT, .1)
-+OPTION(osd_agent_delay_time, OPT_FLOAT, 5.0)
-
- // decay atime and hist histograms after how many objects go by
- OPTION(osd_agent_hist_halflife, OPT_INT, 1000)
-
---- a/src/osd/OSD.cc
-+++ b/src/osd/OSD.cc
-@@ -200,8 +200,10 @@
- agent_ops(0),
- agent_active(true),
- agent_thread(this),
- agent_stop_flag(false),
-+ agent_timer_lock("OSD::agent_timer_lock"),
-+ agent_timer(osd->client_messenger->cct, agent_timer_lock),
- objecter_lock("OSD::objecter_lock"),
- objecter_timer(osd->client_messenger->cct, objecter_lock),
- objecter(new Objecter(osd->client_messenger->cct, osd->objecter_messenger, osd->monc, &objecter_osdmap,
- objecter_lock, objecter_timer, 0, 0)),
-@@ -434,8 +436,12 @@
- {
- Mutex::Locker l(backfill_request_lock);
- backfill_request_timer.shutdown();
- }
-+ {
-+ Mutex::Locker l(agent_timer_lock);
-+ agent_timer.shutdown();
-+ }
- osdmap = OSDMapRef();
- next_osdmap = OSDMapRef();
- }
-
-@@ -450,8 +456,9 @@
- objecter->set_client_incarnation(0);
- objecter->init_locked();
- }
- watch_timer.init();
-+ agent_timer.init();
-
- agent_thread.create();
- }
-
-@@ -465,8 +472,17 @@
- agent_cond.Signal();
- agent_lock.Unlock();
- }
-
-+class AgentTimeoutCB : public Context {
-+ PGRef pg;
-+public:
-+ AgentTimeoutCB(PGRef _pg) : pg(_pg) {}
-+ void finish(int) {
-+ pg->agent_choose_mode_restart();
-+ }
-+};
-+
- void OSDService::agent_entry()
- {
- dout(10) << __func__ << " start" << dendl;
- agent_lock.Lock();
-@@ -500,9 +516,20 @@
- }
- PGRef pg = *agent_queue_pos;
- int max = g_conf->osd_agent_max_ops - agent_ops;
- agent_lock.Unlock();
-- pg->agent_work(max);
-+ if (!pg->agent_work(max)) {
-+ dout(10) << __func__ << " " << *pg
-+ << " no agent_work, delay for " << g_conf->osd_agent_delay_time
-+ << " seconds" << dendl;
-+
-+ osd->logger->inc(l_osd_tier_delay);
-+ // Queue a timer to call agent_choose_mode for this pg in 5 seconds
-+ agent_timer_lock.Lock();
-+ Context *cb = new AgentTimeoutCB(pg);
-+ agent_timer.add_event_after(g_conf->osd_agent_delay_time, cb);
-+ agent_timer_lock.Unlock();
-+ }
- agent_lock.Lock();
- }
- agent_lock.Unlock();
- dout(10) << __func__ << " finish" << dendl;
-@@ -1477,8 +1504,9 @@
- osd_plb.add_u64_counter(l_osd_tier_evict, "tier_evict");
- osd_plb.add_u64_counter(l_osd_tier_whiteout, "tier_whiteout");
- osd_plb.add_u64_counter(l_osd_tier_dirty, "tier_dirty");
- osd_plb.add_u64_counter(l_osd_tier_clean, "tier_clean");
-+ osd_plb.add_u64_counter(l_osd_tier_delay, "tier_delay");
-
- osd_plb.add_u64_counter(l_osd_agent_wake, "agent_wake");
- osd_plb.add_u64_counter(l_osd_agent_skip, "agent_skip");
- osd_plb.add_u64_counter(l_osd_agent_flush, "agent_flush");
---- a/src/osd/OSD.h
-+++ b/src/osd/OSD.h
-@@ -132,8 +132,9 @@
- l_osd_tier_evict,
- l_osd_tier_whiteout,
- l_osd_tier_dirty,
- l_osd_tier_clean,
-+ l_osd_tier_delay,
-
- l_osd_agent_wake,
- l_osd_agent_skip,
- l_osd_agent_flush,
-@@ -465,8 +466,10 @@
- return NULL;
- }
- } agent_thread;
- bool agent_stop_flag;
-+ Mutex agent_timer_lock;
-+ SafeTimer agent_timer;
-
- void agent_entry();
- void agent_stop();
-
---- a/src/osd/PG.h
-+++ b/src/osd/PG.h
-@@ -2130,11 +2130,13 @@
- virtual void on_shutdown() = 0;
- virtual void check_blacklisted_watchers() = 0;
- virtual void get_watchers(std::list<obj_watch_item_t>&) = 0;
-
-- virtual void agent_work(int max) = 0;
-+ virtual bool agent_work(int max) = 0;
- virtual void agent_stop() = 0;
-+ virtual void agent_delay() = 0;
- virtual void agent_clear() = 0;
-+ virtual void agent_choose_mode_restart() = 0;
- };
-
- ostream& operator<<(ostream& out, const PG& pg);
-
---- a/src/osd/ReplicatedPG.cc
-+++ b/src/osd/ReplicatedPG.cc
-@@ -10965,8 +10965,9 @@
- agent_state->position.pool = info.pgid.pool();
- agent_state->position.hash = pool.info.get_random_pg_position(
- info.pgid.pgid,
- rand());
-+ agent_state->start = agent_state->position;
-
- dout(10) << __func__ << " allocated new state, position "
- << agent_state->position << dendl;
- } else {
-@@ -10985,23 +10986,24 @@
- agent_stop();
- agent_state.reset(NULL);
- }
-
--void ReplicatedPG::agent_work(int start_max)
-+// Return false if no objects operated on since start of object hash space
-+bool ReplicatedPG::agent_work(int start_max)
- {
- lock();
- if (!agent_state) {
- dout(10) << __func__ << " no agent state, stopping" << dendl;
- unlock();
-- return;
-+ return true;
- }
-
- assert(!deleting);
-
- if (agent_state->is_idle()) {
- dout(10) << __func__ << " idle, stopping" << dendl;
- unlock();
-- return;
-+ return true;
- }
-
- osd->logger->inc(l_osd_agent_wake);
-
-@@ -11100,15 +11102,44 @@
- agent_state->atime_hist.decay();
- agent_state->temp_hist.decay();
- }
-
-+ // Total objects operated on so far
-+ int total_started = agent_state->started + started;
-+ bool need_delay = false;
-+
-+ dout(20) << __func__ << " start pos " << agent_state->position
-+ << " next start pos " << next
-+ << " started " << total_started << dendl;
-+
-+ // See if we've made a full pass over the object hash space
-+ // This might check at most ls_max objects a second time to notice that
-+ // we've checked every objects at least once.
-+ if (agent_state->position < agent_state->start && next >= agent_state->start) {
-+ dout(20) << __func__ << " wrap around " << agent_state->start << dendl;
-+ if (total_started == 0)
-+ need_delay = true;
-+ else
-+ total_started = 0;
-+ agent_state->start = next;
-+ }
-+ agent_state->started = total_started;
-+
-+ // See if we are starting from beginning
- if (next.is_max())
- agent_state->position = hobject_t();
- else
- agent_state->position = next;
-- dout(20) << __func__ << " final position " << agent_state->position << dendl;
-+
-+ if (need_delay) {
-+ assert(agent_state->delaying == false);
-+ agent_delay();
-+ unlock();
-+ return false;
-+ }
- agent_choose_mode();
- unlock();
-+ return true;
- }
-
- void ReplicatedPG::agent_load_hit_sets()
- {
-@@ -11308,10 +11339,37 @@
- osd->agent_disable_pg(this, agent_state->evict_effort);
- }
- }
-
--void ReplicatedPG::agent_choose_mode()
-+void ReplicatedPG::agent_delay()
- {
-+ dout(20) << __func__ << dendl;
-+ if (agent_state && !agent_state->is_idle()) {
-+ assert(agent_state->delaying == false);
-+ agent_state->delaying = true;
-+ osd->agent_disable_pg(this, agent_state->evict_effort);
-+ }
-+}
-+
-+void ReplicatedPG::agent_choose_mode_restart()
-+{
-+ dout(20) << __func__ << dendl;
-+ lock();
-+ if (agent_state && agent_state->delaying) {
-+ agent_state->delaying = false;
-+ agent_choose_mode(true);
-+ }
-+ unlock();
-+}
-+
-+void ReplicatedPG::agent_choose_mode(bool restart)
-+{
-+ // Let delay play out
-+ if (agent_state->delaying) {
-+ dout(20) << __func__ << this << " delaying, ignored" << dendl;
-+ return;
-+ }
-+
- uint64_t divisor = pool.info.get_pg_num_divisor(info.pgid.pgid);
-
- uint64_t num_user_objects = info.stats.stats.sum.num_objects;
-
-@@ -11383,9 +11441,9 @@
- // flush mode
- TierAgentState::flush_mode_t flush_mode = TierAgentState::FLUSH_MODE_IDLE;
- uint64_t flush_target = pool.info.cache_target_dirty_ratio_micro;
- uint64_t flush_slop = (float)flush_target * g_conf->osd_agent_slop;
-- if (agent_state->flush_mode == TierAgentState::FLUSH_MODE_IDLE)
-+ if (restart || agent_state->flush_mode == TierAgentState::FLUSH_MODE_IDLE)
- flush_target += flush_slop;
- else
- flush_target -= MIN(flush_target, flush_slop);
-
-@@ -11400,9 +11458,9 @@
- TierAgentState::evict_mode_t evict_mode = TierAgentState::EVICT_MODE_IDLE;
- unsigned evict_effort = 0;
- uint64_t evict_target = pool.info.cache_target_full_ratio_micro;
- uint64_t evict_slop = (float)evict_target * g_conf->osd_agent_slop;
-- if (agent_state->evict_mode == TierAgentState::EVICT_MODE_IDLE)
-+ if (restart || agent_state->evict_mode == TierAgentState::EVICT_MODE_IDLE)
- evict_target += evict_slop;
- else
- evict_target -= MIN(evict_target, evict_slop);
-
-@@ -11464,13 +11522,13 @@
- // NOTE: we are using evict_effort as a proxy for *all* agent effort
- // (including flush). This is probably fine (they should be
- // correlated) but it is not precisely correct.
- if (agent_state->is_idle()) {
-- if (!old_idle) {
-+ if (!restart && !old_idle) {
- osd->agent_disable_pg(this, old_effort);
- }
- } else {
-- if (old_idle) {
-+ if (restart || old_idle) {
- osd->agent_enable_pg(this, agent_state->evict_effort);
- } else if (old_effort != agent_state->evict_effort) {
- osd->agent_adjust_pg(this, old_effort, agent_state->evict_effort);
- }
---- a/src/osd/ReplicatedPG.h
-+++ b/src/osd/ReplicatedPG.h
-@@ -808,9 +808,9 @@
- friend class C_AgentFlushStartStop;
- friend class C_HitSetFlushing;
-
- void agent_setup(); ///< initialize agent state
-- void agent_work(int max); ///< entry point to do some agent work
-+ bool agent_work(int max); ///< entry point to do some agent work
- bool agent_maybe_flush(ObjectContextRef& obc); ///< maybe flush
- bool agent_maybe_evict(ObjectContextRef& obc); ///< maybe evict
-
- void agent_load_hit_sets(); ///< load HitSets, if needed
-@@ -824,13 +824,15 @@
- int *atime, int *temperature);
-
- /// stop the agent
- void agent_stop();
-+ void agent_delay();
-
- /// clear agent state
- void agent_clear();
-
-- void agent_choose_mode(); ///< choose (new) agent mode(s)
-+ void agent_choose_mode(bool restart = false); ///< choose (new) agent mode(s)
-+ void agent_choose_mode_restart();
-
- /// true if we can send an ondisk/commit for v
- bool already_complete(eversion_t v) {
- for (xlist<RepGather*>::iterator i = repop_queue.begin();
---- a/src/osd/TierAgentState.h
-+++ b/src/osd/TierAgentState.h
-@@ -16,8 +16,12 @@
-
- struct TierAgentState {
- /// current position iterating across pool
- hobject_t position;
-+ /// Count of agent_work since "start" position of object hash space
-+ int started;
-+ hobject_t start;
-+ bool delaying;
-
- /// histogram of ages we've encountered
- pow2_hist_t atime_hist;
- pow2_hist_t temp_hist;
-@@ -65,19 +69,22 @@
- /// distributed) that i should aim to evict.
- unsigned evict_effort;
-
- TierAgentState()
-- : hist_age(0),
-+ : started(0),
-+ delaying(false),
-+ hist_age(0),
- flush_mode(FLUSH_MODE_IDLE),
- evict_mode(EVICT_MODE_IDLE),
- evict_effort(0)
- {}
-
- /// false if we have any work to do
- bool is_idle() const {
- return
-- flush_mode == FLUSH_MODE_IDLE &&
-- evict_mode == EVICT_MODE_IDLE;
-+ delaying ||
-+ (flush_mode == FLUSH_MODE_IDLE &&
-+ evict_mode == EVICT_MODE_IDLE);
- }
-
- /// add archived HitSet
- void add_hit_set(time_t start, HitSetRef hs) {
diff --git a/debian/patches/8175.patch b/debian/patches/8175.patch
deleted file mode 100644
index 69790c9..0000000
--- a/debian/patches/8175.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From e7df73dd7aaf5a0b1171f73d6695d26cd25b7b35 Mon Sep 17 00:00:00 2001
-From: Sage Weil <sage at inktank.com>
-Date: Thu, 1 May 2014 16:53:17 -0700
-Subject: [PATCH] osd: Prevent divide by zero in agent_choose_mode()
-
-Fixes: #8175
-Backport: firefly
-
-Signed-off-by: David Zafman <david.zafman at inktank.com>
-Signed-off-by: Sage Weil <sage at inktank.com>
-(cherry picked from commit f47f867952e6b2a16a296c82bb9b585b21cde6c8)
-
---- a/src/osd/ReplicatedPG.cc
-+++ b/src/osd/ReplicatedPG.cc
-@@ -11369,8 +11369,9 @@
- return;
- }
-
- uint64_t divisor = pool.info.get_pg_num_divisor(info.pgid.pgid);
-+ assert(divisor > 0);
-
- uint64_t num_user_objects = info.stats.stats.sum.num_objects;
-
- // adjust (effective) user objects down based on the number
-@@ -11417,21 +11418,22 @@
- uint64_t avg_size = info.stats.stats.sum.num_bytes /
- info.stats.stats.sum.num_objects;
- dirty_micro =
- num_dirty * avg_size * 1000000 /
-- (pool.info.target_max_bytes / divisor);
-+ MAX(pool.info.target_max_bytes / divisor, 1);
- full_micro =
- num_user_objects * avg_size * 1000000 /
-- (pool.info.target_max_bytes / divisor);
-+ MAX(pool.info.target_max_bytes / divisor, 1);
- }
- if (pool.info.target_max_objects) {
- uint64_t dirty_objects_micro =
- num_dirty * 1000000 /
-- (pool.info.target_max_objects / divisor);
-+ MAX(pool.info.target_max_objects / divisor, 1);
- if (dirty_objects_micro > dirty_micro)
- dirty_micro = dirty_objects_micro;
- uint64_t full_objects_micro =
-- num_user_objects * 1000000 / (pool.info.target_max_objects / divisor);
-+ num_user_objects * 1000000 /
-+ MAX(pool.info.target_max_objects / divisor, 1);
- if (full_objects_micro > full_micro)
- full_micro = full_objects_micro;
- }
- dout(20) << __func__ << " dirty " << ((float)dirty_micro / 1000000.0)
-@@ -11473,9 +11475,13 @@
- } else if (full_micro > evict_target) {
- // set effort in [0..1] range based on where we are between
- evict_mode = TierAgentState::EVICT_MODE_SOME;
- uint64_t over = full_micro - evict_target;
-- uint64_t span = 1000000 - evict_target;
-+ uint64_t span;
-+ if (evict_target >= 1000000)
-+ span = 1;
-+ else
-+ span = 1000000 - evict_target;
- evict_effort = MAX(over * 1000000 / span,
- (unsigned)(1000000.0 * g_conf->osd_agent_min_evict_effort));
-
- // quantize effort to avoid too much reordering in the agent_queue.
diff --git a/debian/patches/8282.patch b/debian/patches/8282.patch
deleted file mode 100644
index d0d3f3e..0000000
--- a/debian/patches/8282.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 1b899148a729235ab2835d368077f18e62a36a93 Mon Sep 17 00:00:00 2001
-From: Haomai Wang <haomaiwang at gmail.com>
-Date: Sat, 3 May 2014 12:53:06 +0800
-Subject: [PATCH] Fix clone problem
-
-When clone happened, the origin header also will be updated in GenericObjectMap,
-so the new header wraper(StripObjectHeader) should be updated too.
-
-Fix #8282
-Signed-off-by: Haomai Wang <haomaiwang at gmail.com>
-(cherry picked from commit 3aee1e0ffe0583f74c02d9c9e86c7fb267f3515c)
-
---- a/src/os/KeyValueStore.cc
-+++ b/src/os/KeyValueStore.cc
-@@ -203,13 +203,16 @@
- Header new_origin_header;
-
- if (target_header)
- *target_header = old_header;
-+ if (origin_header)
-+ *origin_header = old_header;
-
- clone(old_header.header, cid, oid, t, &new_origin_header,
- &target_header->header);
-
-- old_header.header = new_origin_header;
-+ if(origin_header)
-+ origin_header->header = new_origin_header;
-
- if (target_header) {
- target_header->oid = oid;
- target_header->cid = cid;
diff --git a/debian/patches/8291.patch b/debian/patches/8291.patch
deleted file mode 100644
index b50de53..0000000
--- a/debian/patches/8291.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 09a1bc5a4601d356b9cc69be8541e6515d763861 Mon Sep 17 00:00:00 2001
-From: "Yan, Zheng" <zheng.z.yan at intel.com>
-Date: Fri, 11 Apr 2014 15:03:37 +0800
-Subject: [PATCH] client: add asok command to kick sessions that were remote
- reset
-
-Fixes: #8021
-Signed-off-by: Yan, Zheng <zheng.z.yan at intel.com>
-
---- a/src/client/Client.cc
-+++ b/src/client/Client.cc
-@@ -119,8 +119,10 @@
- else if (command == "mds_sessions")
- m_client->dump_mds_sessions(f);
- else if (command == "dump_cache")
- m_client->dump_cache(f);
-+ else if (command == "kick_stale_sessions")
-+ m_client->_kick_stale_sessions();
- else
- assert(0 == "bad command registered");
- m_client->client_lock.Unlock();
- f->close_section();
-@@ -403,8 +405,16 @@
- if (ret < 0) {
- lderr(cct) << "error registering admin socket command: "
- << cpp_strerror(-ret) << dendl;
- }
-+ ret = admin_socket->register_command("kick_stale_sessions",
-+ "kick_stale_sessions",
-+ &m_command_hook,
-+ "kick sessions that were remote reset");
-+ if (ret < 0) {
-+ lderr(cct) << "error registering admin socket command: "
-+ << cpp_strerror(-ret) << dendl;
-+ }
-
- client_lock.Lock();
- initialized = true;
- client_lock.Unlock();
-@@ -418,8 +428,9 @@
- AdminSocket* admin_socket = cct->get_admin_socket();
- admin_socket->unregister_command("mds_requests");
- admin_socket->unregister_command("mds_sessions");
- admin_socket->unregister_command("dump_cache");
-+ admin_socket->unregister_command("kick_stale_sessions");
-
- if (ino_invalidate_cb) {
- ldout(cct, 10) << "shutdown stopping cache invalidator finisher" << dendl;
- async_ino_invalidator.wait_for_empty();
-@@ -1537,9 +1548,10 @@
- bool Client::have_open_session(int mds)
- {
- return
- mds_sessions.count(mds) &&
-- mds_sessions[mds]->state == MetaSession::STATE_OPEN;
-+ (mds_sessions[mds]->state == MetaSession::STATE_OPEN ||
-+ mds_sessions[mds]->state == MetaSession::STATE_STALE);
- }
-
- MetaSession *Client::_get_mds_session(int mds, Connection *con)
- {
-@@ -1648,8 +1660,21 @@
-
- m->put();
- }
-
-+void Client::_kick_stale_sessions()
-+{
-+ ldout(cct, 1) << "kick_stale_sessions" << dendl;
-+
-+ for (map<int,MetaSession*>::iterator p = mds_sessions.begin();
-+ p != mds_sessions.end(); ) {
-+ MetaSession *s = p->second;
-+ ++p;
-+ if (s->state == MetaSession::STATE_STALE)
-+ _closed_mds_session(s);
-+ }
-+}
-+
- void Client::send_request(MetaRequest *request, MetaSession *session)
- {
- // make the request
- int mds = session->mds_num;
-@@ -8959,8 +8984,12 @@
- }
- break;
-
- case MetaSession::STATE_OPEN:
-+ ldout(cct, 1) << "reset from mds we were open; mark session as stale" << dendl;
-+ s->state = MetaSession::STATE_STALE;
-+ break;
-+
- case MetaSession::STATE_NEW:
- case MetaSession::STATE_CLOSED:
- default:
- break;
---- a/src/client/Client.h
-+++ b/src/client/Client.h
-@@ -249,8 +249,9 @@
- MetaSession *_get_or_open_mds_session(int mds);
- MetaSession *_open_mds_session(int mds);
- void _close_mds_session(MetaSession *s);
- void _closed_mds_session(MetaSession *s);
-+ void _kick_stale_sessions();
- void handle_client_session(MClientSession *m);
- void send_reconnect(MetaSession *s);
- void resend_unsafe_requests(MetaSession *s);
-
---- a/src/client/MetaSession.cc
-+++ b/src/client/MetaSession.cc
-@@ -14,8 +14,9 @@
- case STATE_OPENING: return "opening";
- case STATE_OPEN: return "open";
- case STATE_CLOSING: return "closing";
- case STATE_CLOSED: return "closed";
-+ case STATE_STALE: return "stale";
- default: return "unknown";
- }
- }
-
---- a/src/client/MetaSession.h
-+++ b/src/client/MetaSession.h
-@@ -32,8 +32,9 @@
- STATE_OPENING,
- STATE_OPEN,
- STATE_CLOSING,
- STATE_CLOSED,
-+ STATE_STALE,
- } state;
-
- list<Context*> waiting_for_open;
-
diff --git a/debian/patches/bp0001.patch b/debian/patches/bp0001.patch
deleted file mode 100644
index cd8e595..0000000
--- a/debian/patches/bp0001.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 6a55c3bc3caf46652e962fa9434900fb494d1e6c Mon Sep 17 00:00:00 2001
-From: David Zafman <david.zafman at inktank.com>
-Date: Thu, 1 May 2014 18:54:30 -0700
-Subject: [PATCH] osd/ReplicatedPG: agent_work() fix next if finished early due to start_max
-
-Backport: firefly
-
-Signed-off-by: David Zafman <david.zafman at inktank.com>
-(cherry picked from commit 9cf470cac8dd4d8f769e768f2de6b9eb67a3c3af)
-
---- a/src/osd/ReplicatedPG.cc
-+++ b/src/osd/ReplicatedPG.cc
-@@ -11091,10 +11091,14 @@
- ++started;
- if (agent_state->evict_mode != TierAgentState::EVICT_MODE_IDLE &&
- agent_maybe_evict(obc))
- ++started;
-- if (started >= start_max)
-+ if (started >= start_max) {
-+ // If finishing early, set "next" to the next object
-+ if (++p != ls.end())
-+ next = *p;
- break;
-+ }
- }
-
- if (++agent_state->hist_age > g_conf->osd_agent_hist_halflife) {
- dout(20) << __func__ << " resetting atime and temp histograms" << dendl;
diff --git a/debian/patches/series b/debian/patches/series
index 726dca3..24d489c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,13 +1,8 @@
-## Backported
+## Backported / Upstream
client-sleep1.patch
client-sleep2.patch
client-sleep3.patch
sleep-recover.patch
-8113.patch
-8175.patch
-8282.patch
-8291.patch
-bp0001.patch
## Debian
arch.patch
--
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