Commits e2ec946858
and 5cb7b3729b
changed the names of binaries created, ignore the
new name or "make distcheck" will whine.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
The queue responsible for calling generate_backlog hasn't actually been
started at that stage of startup.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Instead of having global CompatSet objects, just have functions that can
return appropriate CompatSet objects. This avoids global constructor
and destructor ordering issues.
Fixes bug #1512
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Normal disks have a write cache and acknowledge writes before they reach
the platter. Among other things, this masks write latency. A flush
operation is needed when the user really cares that the writes are stable.
Implement a librbd write window that allows a window including the most
recent N bytes of writes to be immediately acked. An flush operation
blocks while they are pushed out to disk.
This differs from the typical disk in that writes are always immediately
sent to the backend store, while disks will buffer small writes for a time
(and, in fact, can be made to hold small writes in the cache indefinitely
under certain workloads).
Thus, 'rbd_writeback_window' may be a bit of a misnomer...
Currently this applies only to aio writes, not sync writes. That could
most easily be fixed by reimplementing write in terms of aio_write.
Signed-off-by: Sage Weil <sage@newdream.net>
If the old_dentry is in the same dir, and it is the last dentry, we need
to keep the dir open.
This is hard to hit because the rename itself will typically instantiate
a null dentry on the target, and it's hard to construct a working where
a racing process makes us drop it. Fortunately this was triggered
reliably by the snaptest-git-ceph.sh workunit.
Fixes: #1519
Signed-off-by: Sage Weil <sage@newdream.net>
test/store_test.cc:318: warning: suggest a space before ';' or explicit braces around empty body in 'for' statement
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Currently we throw out the log and start up anyway. With this change, we
would throw out the log, generate a fresh backlog, and then start up.
That may not be the best possible thing, but it's better than what we
currently do. Indirectly fixes#1502.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Keeping the generated files in version control lets us
support builds from scratch without requiring the full
documentation toolchain to be installed.
The files were just copied over from build-doc/output/man,
after a ./admin/build-doc call. When redoing this, also
take care to remove any roff output if a file was removed
from doc/man, and update Makefile.am.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
Includes various content cleanups: layout of synopsis, layout
of comments in examples, typos.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
We don't have a great way to guarantee mdsmap updates, but they
should happen on their own and we can loop. Closes#1518.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
You can still say "rpmbuild -ba --with tcmalloc ceph.spec"
if you have it.
Add BuildRequires on google-perftools when building with tcmalloc.
Ensure it's the right architecture.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
We were previously setting up a reference loop. But the only way
to get Sessions is via the Connection, so let's just give Sessions
the pointer, and give Connections a counted ref.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
We can't do that if we're trying to be Valgrind-clean, so just
make the lock name part of the class.
As best I can tell, that ordered initialization is safe because
data members are initialized in the order they are declared. See eg
http://xenon.arcticus.com/c-morsels-initializer-list-execution-order
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>