| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
| |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
| |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
| |
If we get an error back, reply to the client directly and remove
the op which triggered promotion from our blocked op queue.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
| |
This way we can do stuff to it, and we're about to.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
| |
This way we can have a couple of functions that handle each type of
case, and let the PromoteCallback choose between them. That's much
better than doing it all inline in the callback.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
| |
The return value is meaningless; nothing in this function can fail.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
| |
This is not yet at all complete -- among other things, it will
retry forever on any object which doesn't exist in the underlying
pool. But it demonstrates the approach reasonably clearly.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
| |
The tuple was already unwieldy with 4 members; I didn't want to add
more. Instead, create a new CopyResults struct which contains all the
object info and completion data, and pass the retval and a CopyResults*
in the CopyCallbackResults tuple.
|
|
|
|
|
|
| |
In the OSD, store the category in the CopyOp using this.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
|
| |
We don't bump the encoding version -- and stick it in the middle --
since it's still brand-new. For simplicity, we encode it unconditionally
rather than trying to embed it alongside the attrs or with its own
"complete" flag in the cursor.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
|
|
| |
This one is encoded with version information. We are not doing anything
to control which op gets sent by the client, but after discussion with
Sam we think this op isn't accessible enough to clients (right now it's
only triggered by a client sending copy-from, which can only happen via
ceph-test-rados) to require compatibility versioning.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
| |
In order to introduce versioning of copy-get, we need to make it a
different op that has the versioning infrastructure from the start.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
| |
It was getting long, isn't terribly dependent on access to do_osd_ops()
state, and will be easier to make generic as its own function.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
|
|
| |
Right now this is very primitive, but we're about to extend it to
deal with request versioning appropriately, and adding in some
extra fields.
Sadly we are doing a little extra copying in the Objecter as a result, but
too bad -- being able to do updates will be worth it.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
| |
Right now the only way that can happen is if we're in the middle of a
promote!
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
| |
As the name says, you give it an obc and it kicks the block list
when finish()ed.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
| |
Make a few changes to make sure we trigger it when appropriate. We'll use
this shortly for object promotion, and perhaps for other things in future.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
| |
This version is a user version, and since we're in the OSD we
should call it such. (In particular, we may want to keep track
of the internal version too when doing cache promotes.)
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
| |
There's no failure it can actually run into, and handling error
codes in some of its callers is going to be a pain.
While we're here, document the parameters.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although fsstress was being called with a static path the directory
it was writing to was in the current directory so doing a cd to the
source directory that is made in /tmp and then removing it later
caused it to be unable to write the files in a non-existent dir.
This change gets the current path first and cd's back into it after
it is done compiling fsstress.
Issue #6479.
Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Reviewed-by: Alfredo Deza <alfredo.deza@inktank.com>
|
|\
| |
| | |
doc: fix openstack rbd installation command
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cannot work because client.volumes.key is not a command
ssh {your-compute-host} client.volumes.key
replace with a tee to allow for copy/paste as well as using the
cat client.volumes.key
in the following lines.
Signed-off-by: Loic Dachary <loic@dachary.org>
|
|\
| |
| |
| |
| | |
os: stronger assert on FileStore::lfn_open
Reviewed-by: David Zafman <david.zafman@inktank.com>
|
|/
|
|
| |
Signed-off-by: Loic Dachary <loic@dachary.org>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It appears that the OSD is not filling in the individual return codes, and they
should be equivalent for all purposes we care about here (the only Op we are
doing is the copy-get, and if it fails we are getting its failure code).
Reported-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit dc0dfb9e01d593afdd430ca776cf4da2c2240a20 the omap xattrs code
moved up a block and r was no longer local to the block. Translate
ENOENT -> 0 to compensate.
Fix the same error in _rmattrs().
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
|\ \
| | |
| | |
| | | |
This lets "make check" pass, so I like it.
Reviewed-by: Greg Farnum <greg@inktank.com>
|
|/ /
| |
| |
| |
| |
| |
| | |
For encoding/decoding test purposes. The generate_test_instances should
be improved to cover more encoding/decoding cases.
Signed-off-by: Loic Dachary <loic@dachary.org>
|
|\ \
| | |
| | | |
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/osd/OpRequest.h
src/osd/PG.cc
src/osd/ReplicatedPG.cc
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If we have multiple trackers in a daemon, we want to be able to configure
them separately. Plus, users already know how to control op sizes in the
OSD, so changing the config options (as we did in a8bbb81b7b7b6420ea08bc4e99a39adc6c3c397a)
is not really appropriate. Instead, provider setters which can be called
at construction time (or on any other change) and use them in the OSD with
the configurables we had previously. Add an observer so you can continue
to change them at run-time
This reverts a8bbb81b7b7b6420ea08bc4e99a39adc6c3c397a
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
mark_event()
This is less prone to getting broken.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Put only the bare essentials in the TrackedOp::dump() implementation, but
have that call into a _dump() function that implementations can specify.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is the only reason we were making OpRequest a friend class, which
is just a bad idea.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We're moving towards dynamically-allocated states instead of the static
ones this started with, so the whole bitmask-based thing doesn't make
much sense any more. Assume people won't use that and provide a default.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Our method of handling the OpRequest destructor is a little weird,
but we're about to get rid of the request member finagling.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If this had ever actually been triggered we would have hit an assert
in the OpRequest destructor that op->request is non-NULL.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Clean up some member privacy issues while we're working on them.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We may want to have daemon-specific settings in the future, but that
will be a small interface change and in the mean time this keeps a clear
demarcation between OSD and OpTracker infrastructure.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This can be used for the concrete implementations to gather any
extra data out of the message and do whatever extra setup based
on that they want. The OpTracker will call this after doing all its
internal setup but before anybody else gets to see the TrackedOp.
Signed-off-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We're starting by templating the create_request function and having
the OpTracker work in terms of TrackedOp[Ref]s intead of
OpRequest[Ref]s. This involves moving a bunch of stuff into the
base-class TrackedOp.
Signed-off-by: Greg Farnum <greg@inktank.com>
|