Add 'status' command.
Add chkconfig line.
Do lockfile stuff only if /var/run/subsys exists.
Still specifying the runlevels, though. The init script bails out (with
success code) if the ceph.conf is missing.
The catch up logic in handle_last didn't handle the stashed state, so we
crashed and burned if it was the master that was behind and caught up.
Use a helper that does the work for handle_commit AND handle_last.
Call start_recovery_op from pull() instead of fixing every caller (some
were wrong). This keeps the recovery state in sync with pulling state,
even when pull() has to pull something different (head, snapdir) first.
Fixes this crash:
osd/PG.cc: In function 'void PG::finish_recovery_op(const sobject_t&, bool)':
osd/PG.cc:1842: FAILED assert(recovering_oids.count(soid))
1: (PG::finish_recovery_op(sobject_t const&, bool)+0x14e) [0x74caf6]
2: (ReplicatedPG::sub_op_push(MOSDSubOp*)+0x1da8) [0x669292]
3: (ReplicatedPG::do_sub_op(MOSDSubOp*)+0x109) [0x671a73]
4: (OSD::dequeue_op(PG*)+0x23c) [0x6bda00]
5: (OSD::OpWQ::_process(PG*)+0x21) [0x7387c9]
6: (ThreadPool::WorkQueue<PG>::_void_process(void*)+0x28) [0x6f5e12]
7: (ThreadPool::worker()+0x23a) [0x7f2404]
8: (ThreadPool::WorkThread::entry()+0x19) [0x73b783]
9: (Thread::_entry_func(void*)+0x20) [0x64f92a]
10: /lib/libpthread.so.0 [0x7f7a12cf473a]
11: (clone()+0x6d) [0x7f7a11f1e69d]
The monitor rank is provided during startup. No need to verify it against
the monitor store, especially since the stores are otherwise identical.
This makes it simpler to restore/duplicate/wahtever a monitor.. just copy
the files.
If we are going to create a remote dentry linking to a multiversion inode
we're unlinking, make sure it's anchored!
This is a bit fugly because it mirrors the logic in journal_cow_dentry. No
obvious way to use a generic helper for that though.
Our traverse helper will follow the auth if we're looking at snapped
metadata, but we _don't_ want that for readdir because we check auth
ourselves, and want the dir's auth, not the inode's.
Signed-off-by: Sage Weil <sage@newdream.net>