mirror of
https://github.com/ceph/ceph
synced 2025-02-20 17:37:29 +00:00
Merge remote-tracking branch 'gh/next'
This commit is contained in:
commit
0b445e0f6f
@ -204,7 +204,9 @@ void SimpleMessenger::reaper_entry()
|
||||
ldout(cct,10) << "reaper_entry start" << dendl;
|
||||
lock.Lock();
|
||||
while (!reaper_stop) {
|
||||
reaper();
|
||||
reaper(); // may drop and retake the lock
|
||||
if (reaper_stop)
|
||||
break;
|
||||
reaper_cond.Wait(lock);
|
||||
}
|
||||
lock.Unlock();
|
||||
@ -236,7 +238,14 @@ void SimpleMessenger::reaper()
|
||||
p->unregister_pipe();
|
||||
assert(pipes.count(p));
|
||||
pipes.erase(p);
|
||||
|
||||
// drop msgr lock while joining thread; the delay through could be
|
||||
// trying to fast dispatch, preventing it from joining without
|
||||
// blocking and deadlocking.
|
||||
lock.Unlock();
|
||||
p->join();
|
||||
lock.Lock();
|
||||
|
||||
if (p->sd >= 0)
|
||||
::close(p->sd);
|
||||
ldout(cct,10) << "reaper reaped pipe " << p << " " << p->get_peer_addr() << dendl;
|
||||
|
@ -1404,7 +1404,7 @@ int MemStore::_collection_move_rename(coll_t oldcid, const ghobject_t& oldoid,
|
||||
r = 0;
|
||||
out:
|
||||
c->lock.put_write();
|
||||
if (c != oc)
|
||||
if (&(*c) != &(*oc))
|
||||
oc->lock.put_write();
|
||||
return r;
|
||||
}
|
||||
|
@ -74,6 +74,10 @@ struct OpRequest : public TrackedOp {
|
||||
|
||||
void _dump(utime_t now, Formatter *f) const;
|
||||
|
||||
bool has_feature(uint64_t f) const {
|
||||
return request->get_connection()->has_feature(f);
|
||||
}
|
||||
|
||||
private:
|
||||
Message *request; /// the logical request we are tracking
|
||||
osd_reqid_t reqid;
|
||||
|
@ -1116,6 +1116,12 @@ void ReplicatedPG::do_request(
|
||||
waiting_for_active.push_back(op);
|
||||
return;
|
||||
}
|
||||
// verify client features
|
||||
if ((pool.info.has_tiers() || pool.info.is_tier()) &&
|
||||
!op->has_feature(CEPH_FEATURE_OSD_CACHEPOOL)) {
|
||||
osd->reply_op_error(op, -EOPNOTSUPP);
|
||||
return;
|
||||
}
|
||||
do_op(op); // do it now
|
||||
break;
|
||||
|
||||
|
@ -206,6 +206,7 @@ int main(int argc, const char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
g_ceph_context->_log->flush();
|
||||
if (action == "help") {
|
||||
usage();
|
||||
exit(0);
|
||||
|
Loading…
Reference in New Issue
Block a user