]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
14 years agolibrados: cosmetic header changes
Sage Weil [Fri, 4 Mar 2011 05:34:26 +0000 (21:34 -0800)]
librados: cosmetic header changes

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agolibrados, librbd: use separate IoCtxs for data and metadata
Josh Durgin [Thu, 3 Mar 2011 16:44:27 +0000 (08:44 -0800)]
librados, librbd: use separate IoCtxs for data and metadata

Adds deep copy method IoCtx::dup, so that the data and metadata
contexts can have different snap_seqs and snap contexts.

Also avoid calling Rados::shutdown explicitly, since the destructor
will do this, and it must run after the Image destructor.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrbd: fix error message and unnamed constant
Josh Durgin [Thu, 3 Mar 2011 16:42:34 +0000 (08:42 -0800)]
librbd: fix error message and unnamed constant

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrbd: change RBD::open to take a reference to an Image instead of a pointer
Josh Durgin [Wed, 2 Mar 2011 18:11:55 +0000 (10:11 -0800)]
librbd: change RBD::open to take a reference to an Image instead of a pointer

This makes the API more consistent with the librados API.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados: remove unused member of IoCtx
Josh Durgin [Wed, 2 Mar 2011 00:03:01 +0000 (16:03 -0800)]
librados: remove unused member of IoCtx

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados: IoCtx destructor should put reference only if initalized
Yehuda Sadeh [Tue, 1 Mar 2011 23:18:40 +0000 (15:18 -0800)]
librados: IoCtx destructor should put reference only if initalized

14 years agolibrados: can set up object locator
Yehuda Sadeh [Tue, 1 Mar 2011 22:20:11 +0000 (14:20 -0800)]
librados: can set up object locator

14 years agolibrados:rados_ioctx_stat -> rados_ioctx_pool_stat
Colin Patrick McCabe [Tue, 1 Mar 2011 14:49:34 +0000 (06:49 -0800)]
librados:rados_ioctx_stat -> rados_ioctx_pool_stat

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoobject_locator: fix clear()
Yehuda Sadeh [Tue, 1 Mar 2011 21:52:43 +0000 (13:52 -0800)]
object_locator: fix clear()

14 years agolibrados: use atomic_t for reference count
Colin Patrick McCabe [Tue, 1 Mar 2011 14:05:41 +0000 (06:05 -0800)]
librados: use atomic_t for reference count

Use an use atomic_t for the reference count in IoCtxImpl.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agolibrados: make IoCtxImpl a pointer in WatchContext
Josh Durgin [Tue, 1 Mar 2011 19:47:26 +0000 (11:47 -0800)]
librados: make IoCtxImpl a pointer in WatchContext

Adds get and put to IoCtxImpl for refcounting,
and uses them in WatchContext, which shouldn't
be creating a copy of the IoCtxImpl.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados: decrement refcount of old io_ctx_impl in assignment operator
Josh Durgin [Tue, 1 Mar 2011 19:35:41 +0000 (11:35 -0800)]
librados: decrement refcount of old io_ctx_impl in assignment operator

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados: fix IoCtx::from_rados_ioctx_t
Colin Patrick McCabe [Tue, 1 Mar 2011 12:15:58 +0000 (04:15 -0800)]
librados: fix IoCtx::from_rados_ioctx_t

IoCtx::from_rados_ioctx_t creates an IoCtx out of a rados_ioctx_t.
However, this IoCtx must share ownership of the IoCtxImpl pointer with
the C API user who first called rados_ioctx_create. This must be done
via a reference count inside the IoCtxImpl.

Also add a copy constructor and assignment operator to class IoCtx,
since it's now cheap to have them.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoRename radios_ioctx_{open,close} to create/destroy
Colin Patrick McCabe [Tue, 1 Mar 2011 11:38:44 +0000 (03:38 -0800)]
Rename radios_ioctx_{open,close} to create/destroy

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agolibrados: remove IoCtx::close()
Colin Patrick McCabe [Tue, 1 Mar 2011 11:25:18 +0000 (03:25 -0800)]
librados: remove IoCtx::close()

We decided we don't want IoCtx::close(), since IoCtx::~IoCtx() exists.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoMake git ignore core files.
Tommi Virtanen [Tue, 1 Mar 2011 00:03:35 +0000 (16:03 -0800)]
Make git ignore core files.

14 years agoMake git ignore python generated files.
Tommi Virtanen [Tue, 1 Mar 2011 00:03:17 +0000 (16:03 -0800)]
Make git ignore python generated files.

14 years agolibrados: Crashed on shutdown if connect was never called.
Tommi Virtanen [Mon, 28 Feb 2011 21:04:00 +0000 (13:04 -0800)]
librados: Crashed on shutdown if connect was never called.

Add a trivial unit test to trigger this.

14 years agolibradoshpp: put ceph stuff in namespace librados
Colin Patrick McCabe [Mon, 28 Feb 2011 13:58:03 +0000 (05:58 -0800)]
libradoshpp: put ceph stuff in namespace librados

Try a little bit harder to avoid polluting the user's global namespace
with our stuff.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agolibrados: don't create unused SnapContext objs
Colin Patrick McCabe [Mon, 28 Feb 2011 13:59:51 +0000 (05:59 -0800)]
librados: don't create unused SnapContext objs

There were some unused temporary variables hanging around.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agolibrados: fix copy ctor of ObjectIterator
Colin Patrick McCabe [Mon, 28 Feb 2011 13:19:04 +0000 (05:19 -0800)]
librados: fix copy ctor of ObjectIterator

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agotestrados: add object stat test
Josh Durgin [Tue, 1 Mar 2011 18:36:15 +0000 (10:36 -0800)]
testrados: add object stat test

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agotestlibrbd: recreate test pool each time
Josh Durgin [Tue, 1 Mar 2011 18:33:06 +0000 (10:33 -0800)]
testlibrbd: recreate test pool each time

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agocommon: block SIGPIPE everywhere we can
Colin Patrick McCabe [Thu, 3 Mar 2011 15:08:09 +0000 (07:08 -0800)]
common: block SIGPIPE everywhere we can

It's much better to get EPIPE than SIGPIPE.

Block SIGPIPE in all threads we create. In the daemon, block SIGPIPE in
the main thread.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agomessanger: shouldn't throw sigpipe on failed socket
Yehuda Sadeh [Thu, 3 Mar 2011 21:44:07 +0000 (13:44 -0800)]
messanger: shouldn't throw sigpipe on failed socket

14 years agodout: Log version message when (re)opening log
Colin Patrick McCabe [Thu, 3 Mar 2011 12:30:24 +0000 (04:30 -0800)]
dout: Log version message when (re)opening log

Log a version message whenever we open the dout log, not just the first
time. However, only output it to log files and syslog. Spewing versions
to stderr and stdout was determined to be annoying.

Rename dout_emergency_impl to dout_emergency_to_file_and_syslog to
better reflect its function.

Rename ceph_version_to_string to pretty_version_to_string.

Add get_process_name to do just that. Re-arrange some version.h methods.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Conflicts:

src/common/common_init.cc

14 years agoThread: don't mask signals except in library code
Colin Patrick McCabe [Tue, 1 Mar 2011 16:04:26 +0000 (08:04 -0800)]
Thread: don't mask signals except in library code

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agomds: rip out rename linkmerge support
Sage Weil [Thu, 3 Mar 2011 00:13:54 +0000 (16:13 -0800)]
mds: rip out rename linkmerge support

It turns out POSIX says rename(a,b) is a no-op when a and b link to the
same inode.  This is super weird but good news because it means we can
rip out a bunch of poorly tested code.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agodout: Reopen dout after parsing all config opts
Colin Patrick McCabe [Wed, 2 Mar 2011 15:28:10 +0000 (07:28 -0800)]
dout: Reopen dout after parsing all config opts

Reopen the dout stream only after we parse all configuration options.
Specifying --log-file on the command line now works as expected.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agodout: remove g_conf.log_to_file
Colin Patrick McCabe [Wed, 2 Mar 2011 15:12:03 +0000 (07:12 -0800)]
dout: remove g_conf.log_to_file

Remove the log_to_file configuration option. Instead, only log to a file
if either log_file or log_dir is set.

This way, command-line options like --log-file=/tmp/foo work as
expected.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agologging: default to foreground logging
Colin Patrick McCabe [Wed, 2 Mar 2011 12:22:20 +0000 (04:22 -0800)]
logging: default to foreground logging

At global constructor time: default to logging everything to stderr.

During common_init: set appropriate logging defaults based on the type
or program (daemon or other).

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agocmds/cosd: Fix IsHeapProfilerRunning implicit return type cast.
Alexandre Oliva [Wed, 2 Mar 2011 21:39:09 +0000 (13:39 -0800)]
cmds/cosd: Fix IsHeapProfilerRunning implicit return type cast.

G++ complains about the difference between the return type of tcmalloc's
IsHeapProfilerRunning (int) and the return type of the function that
g_conf.profiler_running is supposed to point to (bool). We could
probably get away with a type-cast, but as a compiler developer and
former C++ language lawyer, I'd rather not take the risk of destroying
the universe by invoking undefined behavior ;-)

Signed-off-by: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
14 years agomds: drop some dead code
Sage Weil [Wed, 2 Mar 2011 17:50:44 +0000 (09:50 -0800)]
mds: drop some dead code

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: fix one rename dentry linkage projection case
Sage Weil [Wed, 2 Mar 2011 17:41:20 +0000 (09:41 -0800)]
mds: fix one rename dentry linkage projection case

There are more.  :(

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoosd: trigger discover_all_missing after replay delay
Sage Weil [Tue, 1 Mar 2011 00:05:08 +0000 (16:05 -0800)]
osd: trigger discover_all_missing after replay delay

We were calling discover_all_missing only when we went immediately active,
not after we were in the replay state (which triggers from a timer event
that calls OSD::activate_pg().  Move the call into PG::activate() so that
we catch both callers.

This requires passing in a query_map from the caller.  While we're at it,
clean up some other instances where we are defining a new query_map
deep within the call tree.

Fixes: #847 (I hope)
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoosd: handle osd_ping (and ack requests) while !active
Sage Weil [Mon, 28 Feb 2011 22:15:14 +0000 (14:15 -0800)]
osd: handle osd_ping (and ack requests) while !active

In particular, we may start getting ping requests before getting (or while
processing) our first map that makes us go active.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoRevert "move g_default_file_layout into ceph_fs.cc"
Sage Weil [Mon, 28 Feb 2011 20:57:56 +0000 (12:57 -0800)]
Revert "move g_default_file_layout into ceph_fs.cc"

This reverts commit 1dc12e3e1de1ee6aeb3ef11bb3faafa4757b1a65.

The headers and ceph_fs.cc are written such that they can be shared
verbatim between the kernel and userspace code.  Omitting the headers
was deliberate, because they differ depending on the build environment.

The default file layout seems fine in config.cc, since it is declared
in config.h, and is a bunch of tunables we generally try to keep in
config.cc.

14 years agocconf: fix clitest
Colin Patrick McCabe [Mon, 28 Feb 2011 11:51:01 +0000 (03:51 -0800)]
cconf: fix clitest

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agounittests: remember to use AM_LDFLAGS
Colin Patrick McCabe [Mon, 28 Feb 2011 11:00:38 +0000 (03:00 -0800)]
unittests: remember to use AM_LDFLAGS

remember to use AM_LDFLAGS when setting _LDFLAGS. Otherwise, the global
flags will be lost.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoMerge branch 'librados_api' into next
Colin Patrick McCabe [Mon, 28 Feb 2011 09:57:58 +0000 (01:57 -0800)]
Merge branch 'librados_api' into next

14 years agoRename PoolHandle to IoContext: part 2
Colin Patrick McCabe [Sat, 26 Feb 2011 00:38:33 +0000 (16:38 -0800)]
Rename PoolHandle to IoContext: part 2

The previous change changed all PoolHandle uses to IoContext. This
change also renames the variable names.

Also fix a few API functions whose names weren't quite right after the
previous change. rados_pool_list really does just list pools-- it has
nothing to do with ioctxes.

rados_ioctx_change_auid should be rados_ioctx_pool_set_auid. Although it
takes an ioctx as an argument, it operates on the pool.

rados_ioctx_close should just return void. APIs where the close
operation can fail are broken. What is the user supposed to do if
closing doesn't work?

Also, fix a few test programs that got overlooked earlier.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agotestlibrbd: call rados_connect
Josh Durgin [Sat, 26 Feb 2011 02:04:21 +0000 (18:04 -0800)]
testlibrbd: call rados_connect

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agoFileStore.h: reorder queue operations in _journaled_ahead
Samuel Just [Thu, 24 Feb 2011 20:31:58 +0000 (12:31 -0800)]
FileStore.h: reorder queue operations in _journaled_ahead

In writeahead mode, an op could dissappear from jq without immediately
reappearing in q.  Thus, q can be empty before seq is requeued and
finished.  _journaled_ahead will now enqueue the op in q before removing
from jq.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
14 years agoRevert "FileStore: fix OpSequencer::flush error"
Samuel Just [Thu, 24 Feb 2011 20:42:16 +0000 (12:42 -0800)]
Revert "FileStore: fix OpSequencer::flush error"

This reverts commit c78b29a47d7211a4b8b1585112ac22b8435a82c7.

This commit introduced an error in parallel journaling mode.
OpSequencer::flush is only meant to ensure that the ops have become
readable, not necessarily journalled.

14 years agolibrados: Rename rados_pool_t to rados_ioctx_t
Colin Patrick McCabe [Fri, 25 Feb 2011 18:23:12 +0000 (10:23 -0800)]
librados: Rename rados_pool_t to rados_ioctx_t

rados_pool_t -> rados_ioctx_t

class PoolCtx -> class IoCtxImpl

class PoolHandle -> class IoCtx

PoolHandle::name() -> IoCtx::get_pool_name()

Replace rados_pool_destroy, PoolHandle::destroy with rados_pool_delete
and Rados::pool_delete.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agotestradospp: update for new librados API
Josh Durgin [Sat, 26 Feb 2011 00:26:51 +0000 (16:26 -0800)]
testradospp: update for new librados API

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agotestlibrbdpp: convert to new APIs
Josh Durgin [Sat, 26 Feb 2011 00:05:00 +0000 (16:05 -0800)]
testlibrbdpp: convert to new APIs

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agotest_common.sh: should rm objects before adding
Colin Patrick McCabe [Fri, 25 Feb 2011 17:08:00 +0000 (09:08 -0800)]
test_common.sh: should rm objects before adding

rados_write doesn't replace the whole object, but that's what we want in
these old tests. So just rm it first.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorbd: de-globalize rbd, rados, Image
Colin Patrick McCabe [Fri, 25 Feb 2011 16:27:29 +0000 (08:27 -0800)]
rbd: de-globalize rbd, rados, Image

Use RAII for rbd, rados, and Image. Their destructors will be called
when main exits, thus doing the cleanup for us. Use auto_ptr for Image.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agolibrbd, librados: fix my last commits to use the new librados API
Josh Durgin [Fri, 25 Feb 2011 23:45:49 +0000 (15:45 -0800)]
librbd, librados: fix my last commits to use the new librados API

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados: add snap_get_stamp to C API
Josh Durgin [Fri, 25 Feb 2011 23:28:30 +0000 (15:28 -0800)]
librados: add snap_get_stamp to C API

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agotestlibrbdpp: initialize pointers
Josh Durgin [Fri, 25 Feb 2011 22:19:51 +0000 (14:19 -0800)]
testlibrbdpp: initialize pointers

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados, librbd: remove selfmanaged_snap_rollback_object
Josh Durgin [Fri, 25 Feb 2011 22:00:05 +0000 (14:00 -0800)]
librados, librbd: remove selfmanaged_snap_rollback_object

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agoMerge branch 'librados_api_cpp' into librados_api
Colin Patrick McCabe [Fri, 25 Feb 2011 16:15:11 +0000 (08:15 -0800)]
Merge branch 'librados_api_cpp' into librados_api

Conflicts:
src/include/rbd/librbd.hpp
src/librbd.cc
src/rbd.cc

14 years agotestlibrbdpp: use new librbd api
Josh Durgin [Fri, 25 Feb 2011 21:39:35 +0000 (13:39 -0800)]
testlibrbdpp: use new librbd api

14 years agorbd: update for librbd api changes
Josh Durgin [Fri, 25 Feb 2011 18:57:27 +0000 (10:57 -0800)]
rbd: update for librbd api changes

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrbd: tweak C++ API
Josh Durgin [Fri, 25 Feb 2011 18:54:30 +0000 (10:54 -0800)]
librbd: tweak C++ API

- rename image_open to open and make it return an int
- remove Image::close, replace with destructor
- make Image constructor private

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados: C++ API rework
Colin Patrick McCabe [Thu, 24 Feb 2011 16:14:20 +0000 (08:14 -0800)]
librados: C++ API rework

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorollback rename
Colin Patrick McCabe [Thu, 24 Feb 2011 18:13:09 +0000 (10:13 -0800)]
rollback rename

14 years agorbd: use new librbd C++ api
Josh Durgin [Fri, 25 Feb 2011 01:20:33 +0000 (17:20 -0800)]
rbd: use new librbd C++ api

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrbd: make C++ api nicer
Josh Durgin [Thu, 24 Feb 2011 21:41:55 +0000 (13:41 -0800)]
librbd: make C++ api nicer

Adds Image class and replaces aio_create_completion with a constructor.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agofilejournal: fix type punning warning, drop unneeded cast
Sage Weil [Thu, 24 Feb 2011 14:12:02 +0000 (06:12 -0800)]
filejournal: fix type punning warning, drop unneeded cast

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoSome tweaks for the librados C API
Colin Patrick McCabe [Thu, 24 Feb 2011 11:30:23 +0000 (03:30 -0800)]
Some tweaks for the librados C API

rados_reopen_log: should take a cluster parameter.

Add rados_pool_list, rados_pool_list_free.

rados_snap_set_read -> rados_pool_snap_set_read

rados_snap_set_write_context -> rados_pool_selfmanaged_snap_set_write_ctx

write/write_full/etc: re-arrange parameter order to be the same as
pwrite(2).

Change interface of rados_pool_list a bit

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agolibrbd, rbd: fill in the rest of image_info_t
Josh Durgin [Thu, 24 Feb 2011 19:23:51 +0000 (11:23 -0800)]
librbd, rbd: fill in the rest of image_info_t

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agoMakefile: fix libatomic_ops linking
Sage Weil [Thu, 24 Feb 2011 13:49:29 +0000 (05:49 -0800)]
Makefile: fix libatomic_ops linking

LDADD seems to have no effect on the final link command.  Switching this
back to AM_LDFLAGS.  This was changed as in 1c7d8f1ac2c, although it's not
clear that the change was intentional...

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: remove "N stopped" from short mdsmap summary
Sage Weil [Thu, 24 Feb 2011 08:34:37 +0000 (00:34 -0800)]
mds: remove "N stopped" from short mdsmap summary

It's confusing because it sounds like we're talking about daemons, when we
really just mean there are some ranks that created some ondisk state but
aren't currently part of the running cluster.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomon: include mds gid in logs
Sage Weil [Thu, 24 Feb 2011 08:31:55 +0000 (00:31 -0800)]
mon: include mds gid in logs

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds,osd: print 'starting ...' message to stdout
Sage Weil [Thu, 24 Feb 2011 08:20:06 +0000 (00:20 -0800)]
mds,osd: print 'starting ...' message to stdout

The timestamp/threadid prefix is unnecessary, and stdout seems more
appropriate.  Now matches cmon.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agocommon: only print version to stdout for daemons
Sage Weil [Thu, 24 Feb 2011 08:19:23 +0000 (00:19 -0800)]
common: only print version to stdout for daemons

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: add 'exit' command
Sage Weil [Thu, 24 Feb 2011 15:50:58 +0000 (07:50 -0800)]
mds: add 'exit' command

Tell a cmds process to suicide/exit immediately.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: fix frag string rendering
Sage Weil [Thu, 24 Feb 2011 15:50:17 +0000 (07:50 -0800)]
mds: fix frag string rendering

Was mostly gibberish from df7c7bd79237d2a8b691f4e59433b0b39a9721a2

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: strengthen assertions in rejoin ack
Sage Weil [Wed, 23 Feb 2011 23:08:58 +0000 (15:08 -0800)]
mds: strengthen assertions in rejoin ack

The ACK only contains items we asked for with a WEAK request.  Assert as
much.  (The old continue bits were from ~2007, when this was originally
written.)

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: fix gratuitous map lookup
Sage Weil [Wed, 23 Feb 2011 23:10:45 +0000 (15:10 -0800)]
mds: fix gratuitous map lookup

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: mark_down connections to any failed peers
Sage Weil [Wed, 23 Feb 2011 22:40:38 +0000 (14:40 -0800)]
mds: mark_down connections to any failed peers

This cleans up messenger state, prevents log spam, and saves a small amount
of memory.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: fix export cancellation vs nested freezes
Sage Weil [Wed, 23 Feb 2011 22:25:06 +0000 (14:25 -0800)]
mds: fix export cancellation vs nested freezes

Prevent freezes from completing while we are canceling exports.  Otherwise
if we are freezing /a/b and /a, and cancel /a/b, we may inadvertantly
complete the freeze on /a (synchronously) and confuse ourselves.  Pin
all freezes beforehand so that when we cancel each one we do not cause
any others to prematurely complete.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoFileStore: fix OpSequencer::flush error
Samuel Just [Wed, 23 Feb 2011 21:55:43 +0000 (13:55 -0800)]
FileStore: fix OpSequencer::flush error

In writeahead mode, an op will dissappear from jq without immediately
reappearing in q.  Thus, q can be empty before seq is requeued and
finished.  last_thru_q and last_thru_jq will now be tracked explicitly.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
14 years agomds: print waiter tag in hex
Sage Weil [Wed, 23 Feb 2011 21:45:23 +0000 (13:45 -0800)]
mds: print waiter tag in hex

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: make frag string rendering simpler
Sage Weil [Wed, 23 Feb 2011 21:36:17 +0000 (13:36 -0800)]
mds: make frag string rendering simpler

Show actual bit prefix when rendering a frag_t.  That is,

$value/$numbits -> bits*

So,

0/0      -> *
000000/1 -> 0*
800000/1 -> 1*
800000/3 -> 100*

etc.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomon: fix dup mds takeover
Sage Weil [Wed, 23 Feb 2011 21:34:01 +0000 (13:34 -0800)]
mon: fix dup mds takeover

Allow a standby to take over for a single MDS only by consistently looking
at the pending_mdsmap and not mdsmap.  Mixing the two leads to all kinds
of confusion.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: print msg when fragtree updates from journal
Sage Weil [Wed, 23 Feb 2011 21:18:59 +0000 (13:18 -0800)]
mds: print msg when fragtree updates from journal

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: verify frags in more approrpiate places
Sage Weil [Wed, 23 Feb 2011 21:17:32 +0000 (13:17 -0800)]
mds: verify frags in more approrpiate places

Not in inner helpers, which may be called on multiple frags to get things
in sync.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: refragment dirs when inode dirfragtree updates from journal
Sage Weil [Wed, 23 Feb 2011 21:01:08 +0000 (13:01 -0800)]
mds: refragment dirs when inode dirfragtree updates from journal

Force dir fragmentation specified by dirfragtree when replayed from
the journal.

Example:
 mds0 is auth for /foo, mds1 is auth for /foo/bar.
 mds1 fragments /foo/bar.  journals etc.
 mds0 gets fragment notify and the in-memory inode's dirfragtree changes.
 mds0 journals the /foo/bar inode for some random reason.
 mds0 imports /foo/bar.

On replay, mds0 refragments upon first mention of the new fragtree in the
journal, so that the dirfragtree <-> dir frags always match.  Confusion is
avoided when we, say, import /foo/bar.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agomds: fix CDir::take_waiting() on dentry waiters
Sage Weil [Wed, 23 Feb 2011 19:55:06 +0000 (11:55 -0800)]
mds: fix CDir::take_waiting() on dentry waiters

Using take_dentry_waiting() means we double-put the DNWAITER pin.  It's
also way slower.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
14 years agoMore fixes, additions for config API
Colin Patrick McCabe [Wed, 23 Feb 2011 16:22:47 +0000 (08:22 -0800)]
More fixes, additions for config API

Add test of the librados configuration API to testrados.c

rados_reopen_log should return void since it can't encounter errors.

Create new rados_conf_get_alloc function that allocates memory, but has
a simpler interface.

Create rados_set_conf_defaults, a place to put librados-specific
configuration defaults.

Implement rados_conf_read_file by re-calling common_init. This isn't the
best way to do it, but it will get the function implemented for now.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoUpdate testrados, rename functions in librados.cc
Colin Patrick McCabe [Wed, 23 Feb 2011 15:29:41 +0000 (07:29 -0800)]
Update testrados, rename functions in librados.cc

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agorados_create: add id parameter
Colin Patrick McCabe [Wed, 23 Feb 2011 13:59:22 +0000 (05:59 -0800)]
rados_create: add id parameter

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoFold common_set_defaults into common_init
Colin Patrick McCabe [Wed, 23 Feb 2011 13:50:10 +0000 (05:50 -0800)]
Fold common_set_defaults into common_init

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoSplt rados_init into rados_create + rados_connect
Colin Patrick McCabe [Wed, 23 Feb 2011 12:43:12 +0000 (04:43 -0800)]
Splt rados_init into rados_create + rados_connect

Splt rados_init into rados_create and rados_connect.  The pattern will
be for users to call create, set configuration, and then connect. Rename
rados_release to rados_destroy, to be more symmetrical with
rados_create. You can't reconnect after calling destroy.

Don't create the messenger inside the RadosClient constructor. Instead,
wait until RadosClient::connect().

Rename rados_conf_apply to rados_reopen_log. Add comment about SIGHUP.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoAdd rados_conf_apply, comments
Colin Patrick McCabe [Wed, 23 Feb 2011 00:38:41 +0000 (16:38 -0800)]
Add rados_conf_apply, comments

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agomd_config_t::set_val/get_val
Colin Patrick McCabe [Tue, 22 Feb 2011 20:27:07 +0000 (12:27 -0800)]
md_config_t::set_val/get_val

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agocommon: more include and copyright fixes
Colin Patrick McCabe [Tue, 22 Feb 2011 19:32:55 +0000 (11:32 -0800)]
common: more include and copyright fixes

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agocommon: Fix some missing includes, copyrights
Colin Patrick McCabe [Tue, 22 Feb 2011 19:23:31 +0000 (11:23 -0800)]
common: Fix some missing includes, copyrights

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agocconf: remove second argument to cconf --lookup
Colin Patrick McCabe [Tue, 22 Feb 2011 17:00:21 +0000 (09:00 -0800)]
cconf: remove second argument to cconf --lookup

Everyone uses get_conf to get configuration values. So the logic for
defaulting to some value if we can't find the requested key should live
there. Also fix a case in cconf where we could encounter a usage error
and keep on going.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoceph_common.sh: remove get_val, get_val_bool
Colin Patrick McCabe [Tue, 22 Feb 2011 16:48:53 +0000 (08:48 -0800)]
ceph_common.sh: remove get_val, get_val_bool

get_val and get_val_bool are unused.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoRename config.h -> common/config.h
Colin Patrick McCabe [Tue, 22 Feb 2011 16:38:45 +0000 (08:38 -0800)]
Rename config.h -> common/config.h

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agoconfig.cc: doesn't depend on ceph_ver.h
Colin Patrick McCabe [Tue, 22 Feb 2011 16:23:30 +0000 (08:23 -0800)]
config.cc: doesn't depend on ceph_ver.h

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
14 years agotestlibrbdpp: update for new librados and librbd APIs
Josh Durgin [Wed, 23 Feb 2011 23:32:57 +0000 (15:32 -0800)]
testlibrbdpp: update for new librados and librbd APIs

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agorbd: update for new librados and librbd APIs
Josh Durgin [Wed, 23 Feb 2011 23:23:59 +0000 (15:23 -0800)]
rbd: update for new librados and librbd APIs

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrbd: implement stacking on top of librados
Josh Durgin [Wed, 23 Feb 2011 22:46:04 +0000 (14:46 -0800)]
librbd: implement stacking on top of librados

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
14 years agolibrados: add constructor to allow client re-use
Josh Durgin [Wed, 23 Feb 2011 22:07:46 +0000 (14:07 -0800)]
librados: add constructor to allow client re-use

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>