Skip to content

ganesha libcephfs changes (do not merge)#318

Closed
liewegas wants to merge 1772 commits intocuttlefishfrom
wip-libcephfs
Closed

ganesha libcephfs changes (do not merge)#318
liewegas wants to merge 1772 commits intocuttlefishfrom
wip-libcephfs

Conversation

@liewegas
Copy link
Member

this is just to capture review comments

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be in terms of a sockaddr_storage, not a uint32_t, so that it works for ipv6 and whatever else comes along. it should probably also return an error if !is_up()?

@liewegas
Copy link
Member Author

overall this looks pretty good.

  • i'm going to resquash it into a few separate patches to separate out the logical changes, so that we can skip the intermediate rejected approaches
  • i didn't look very carefully at the barrier stuff.
  • we'll want to base the final patches on master. i'll rebase first, though..

Sage Weil and others added 17 commits June 27, 2013 21:39
When we drop the request inode refs, we need to use put_inode() to ensure
they get cleaned up properly (removed from inode_map, caps released, etc.).
Do this explicitly here (as we do with all other inode put() paths that
matter).

Fixes: #5381
Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
If we get ENXIO, buflen will be 0.

Signed-off-by: Sage Weil <sage@inktank.com>
…p-rgw-geo-2

Conflicts:
	src/Makefile.am
	src/rgw/rgw_admin.cc
	src/rgw/rgw_common.h

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
…vate

Not sure I can make this actually private and make Client::put_inode() a
friend method (making all of Client a friend would defeat the purpose).
This works well enough, though!

Signed-off-by: Sage Weil <sage@inktank.com>
Make sure all MetaRequest reference put's go through the same path that
releases inode references, including all of the error paths.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Call into an MDS method so that we can write to the log.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Make a well-defined maximum size of an object attribute.  Since Linus has
a 64KB limit, and that is what we normally use to back this, use that as
the limit.  This means that even when leveldb is backing large xattrs
(as ext4 users must do) we will return EFBIG on >64KB setxattr attempts.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Sage Weil and others added 28 commits July 10, 2013 10:19
The field is not used or useful since the monitor does not even look
at it (in Monitor::handle_command()).  Avoid populating it and the
subsequent confusion for poor developers.

Signed-off-by: Sage Weil <sage@inktank.com>
We should not send an unbounded number of inc maps to our peers or clients.
In particular, if a peer is not contacted for a while, we may think they
have a very old map (say, 10000 epochs ago) and send thousands of inc maps
when the distribution shifts and we need to peer.

Note that if we do not send enough maps, the peers will make do by
requesting the map from somewhere else (currently the mon).  Regardless
of the source, however, we must limit the amount that we speculatively
share as it usually is not needed.

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
From 653e04a

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Fixes bug 5528

Since it returns all xattrs, it does not take an xattr_name. Also,
add unit tests for the Object xattrs methods.

Signed-off-by: Johannes Erdfelt <johannes@erdfelt.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
It's only present in very recent versions of nose, and doesn't provide
much beyond a simple assert.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
On some systems (virtual machines so far) the device-by-path entry
from udevadm is not always in the same spot so instead actually
look for the right output instead of blindy assuming that its a
specific field in the output.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Reviewed-by: Gary Lowell  <gary.lowell@inktank.com>
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
radosgw-admin help command naming and text improvements

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: Sage Weil <sage@inktank.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>
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>
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 is more natural for both FUSE and Ganesha.

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 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>
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>
(Includes pieces of NFS interface widening by Adam.)

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>
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>
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>
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>
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>
@liewegas liewegas closed this Jul 15, 2013
andriytk pushed a commit to andriytk/cortx-rgw that referenced this pull request Jun 22, 2022
Problem:
	In PR ceph#316 we commented IPPolicyTest unittest as IPPolicyTest
	unittests were crashing.
Solution:
	Uncommented IPPolicyTest unittests. A new story will be
	creating for fixing this crash.

Signed-off-by: Parayya Vastrad <parayya.vastrad@seagate.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.