| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Supply a buffer and copy the data into it. Do not ever expose internal
pointers from libcephfs's own cache.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
|
|
|
|
|
|
|
| |
For xattrs, we only include them in the reply if we are issuing caps on
them. However, in the getattr case, we need to include the snapshot of the
current state.
The original problem is reproduced by LibCephFS.Xattrs_ll (a simple set
then get).
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
| |
Signed-off-by: Andrey Kuznetsov <Andrey_Kuznetsov@epam.com>
|
|
|
|
| |
Signed-off-by: Andrey Kuznetsov <Andrey_Kuznetsov@epam.com>
|
|
|
|
| |
Signed-off-by: Andrey Kuznetsov <Andrey_Kuznetsov@epam.com>
|
|
|
|
|
|
|
|
|
| |
This patch exposes all changes made for interfacing with Ganesha
and layout support and David Zafman's proposed modifications to
the low-level API.
Signed-off-by: Adam Emerson <aemerson@linuxbox.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adapts the FUSE client to David Zafman's proposed interface
changes.
(Includes pieces of NFS interface widening by Adam.)
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Conflicts:
src/client/fuse_ll.cc
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
| |
(Includes pieces of NFS interface widening by Adam.)
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
|
|
|
|
| |
These methods were created to implement pNFS data server support,
bypassing cap checks since the pNFS MDS holds a cap on behalf of
the client, realized in the recallable layout.
(Includes pieces of API v2 by Matt.)
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to construct pNFS layouts and DS filehandles that
match the Ceph clustering, placement, and striping structure.
(Includes pieces of API v2 by Matt.)
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Conflicts:
src/client/Client.cc
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit implements a set of API changes proposed by
"David Zafman" <david.zafman@inktank.com>.
The principle change is consistently use Ceph Inode pointers as
context for inode operations, in place of materialized snapid,
inode# (vinodeno_t) tuples.
This provides a strictly handle-based interface to users. They can either
do lookups themselves, or call a lookup method to get an Inode* from a
vinodeno_t.
(Build fixed in later commits, e.g., SyntheticClient.cc.)
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
| |
This is more natural for both FUSE and Ganesha.
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
|
| |
This appears to save us a bit of extra work trying to fill up the buffer
further than it can be filled.
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This gives us a framework to implement commit operations that are
guaranteed to terminate even if unstable writes come in after commit
is called.
Adapted to use Boost interval classes by Adam Emerson
<aemerson@linuxbox.com>.
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
| |
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
| |
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
|
|
|
|
|
|
|
|
| |
This is an unfortunate feature of the API, but it can't be changed without
potentially breaking users.
Fixes: #5989
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
|
|
|
|
|
|
|
| |
This wasn't getting built in!
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
|
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
|
|
|
|
| |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
|
|
|
|
|
| |
Cut&paste goof in 0e85074402cd02b292daadcb5b8e73ac1207d571.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
| |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|\
| |
| |
| | |
Reviewed-by: Sage Weil <sage@inktank.com>
|
| |
| |
| |
| |
| |
| |
| | |
There was a bunch of situations in which we would have a proper error to
propagate to user-space but we would always return '1' (EXIT_FAILURE).
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| |
| |
| |
| |
| |
| | |
Regression test for #6047
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Except in very special cases, we should let PaxosService take its course
and trigger the proposals itself. In this case, we were proposing right
before returning to PaxosService, and we were returning false on top of it
(most likely to guarantee that PaxosService wouldn't try to propose).
This doesn't make much sense, so let's do it like all the other cool kids
are doing and let PaxosService decide what's best for us.
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| |
| |
| |
| |
| |
| |
| | |
Backport: dumpling
Fixes: #6047
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Returning the current version for the pgid and last_user_version makes
some sense here.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
All other MOSDOpReply creators do this, with the exception of the pg
op.
Fixes: #6222
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
|
| |
| |
| |
| | |
Signed-off-by: Greg Farnum <greg@inktank.com>
|
|\ \
| | |
| | |
| | |
| | | |
Correct syntax for generate swift key
Signed-off-by: Lukasz Jagiello <jagiello.lukasz@gmail.com>
|
|/ / |
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Backport: dumpling
Moving back the watch initialization after the zone init,
as the zone info holds the control pool name. Since zone
init might need to create a new system object (that needs
to distribute cache), don't try to distribute cache if
watch is not yet initialized.
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
|\ \ \
| | | |
| | | |
| | | | |
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Initial pass at COPY_FROM implementation. This uses COPY_GET to read an
object from another OSD and write it locally. It chunks the read but
accumulates it all in-memory and commits it at once, so it is only suitable
for smaller objects.
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This operation will copy an entire object (data, attrs, omap)
atomically. If the src_version does not match the source object, or
the source object is updated while the copy is in progress, we will
fail with a suitable error code. By atomic we mean that it will either
successfully copy the entire object in its entirety or it will fail (and
require no cleanup).
Add to C++ librados API only for now.
Signed-off-by: Sage Weil <sage@inktank.com>
Conflicts:
src/include/ceph_strings.cc
src/include/rados.h
src/osd/osd_types.cc
|
|/ / /
| | |
| | |
| | | |
Signed-off-by: Dan Mick <dan.mick@inktank.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
configuration.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was broken by the refactor in 96aaa5e3a371ade8b91ad9ab991d996eaef2cea5
and can make us hang.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Following the changes to when we set or increase the user_version, we
want to continue to return the best lower bound we can on the version
of any newly-created object. For ENOENT replies that means returning
info.last_user_version instead of the (potentially-zero) ctx->user_at_version.
Similarly, for cls_current_version we want to return the last version on
the PG rather than the last update to the object in order to provide
sensible version ordering across object deletes and creates.
Update the versions doc so it continues to be precise.
Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
|
|\ \ \
| | | |
| | | |
| | | | |
Reviewed-by: Greg Farnum <greg@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Leave ctx->user_at_version set to the previous oi.user_version unless/until
we find that ctx->user_modify is true.
Signed-off-by: Sage Weil <sage@inktank.com>
|