CEPH_FEATURE_MSG_ADDR2 was added to the userland code a couple of years
ago, but the kclient never got support for it. While addr2 doesn't add a
lot of new functionality, it is a prerequisite for msgr2 support, which
we will eventually need, and the feature bit is shared with
CEPH_FEATURE_FS_BTIME and CEPH_FEATURE_FS_CHANGE_ATTR.
This set adds support for all of three features (necessary since the bit
is shared). I've also added support for querying birthtime via statx().
I was able to do a cephfs mount and ran xfstests on it, but some of the
more obscure messages haven't yet been tested. Birthtime support works
as expected, but I don't have a great way to test the change attribute.
We don't set SB_I_VERSION, so none of the internal kernel users will
rely on it, and that value is not exposed to userspace via statx (yet).
Given that, we could leave off the last 4 patches for now.
Jeff Layton (16):
libceph: fix sa_family just after reading address
libceph: add ceph_decode_entity_addr
libceph: ADDR2 support for monmap
libceph: switch osdmap decoding to use ceph_decode_entity_addr
libceph: fix watch_item_t decoding to use ceph_decode_entity_addr
libceph: correctly decode ADDR2 addresses in incremental OSD maps
ceph: have MDS map decoding use entity_addr_t decoder
ceph: fix decode_locker to use ceph_decode_entity_addr
ceph: add btime field to ceph_inode_info
ceph: handle btime in cap messages
libceph: turn on CEPH_FEATURE_MSG_ADDR2
ceph: allow querying of STATX_BTIME in ceph_getattr
iversion: add a routine to update a raw value with a larger one
ceph: add change_attr field to ceph_inode_info
ceph: handle change_attr in cap messages
ceph: increment change_attribute on local changes
fs/ceph/addr.c | 2 +
fs/ceph/caps.c | 37 +++++++++------
fs/ceph/file.c | 5 ++
fs/ceph/inode.c | 23 +++++++--
fs/ceph/mds_client.c | 21 +++++----
fs/ceph/mds_client.h | 2 +
fs/ceph/mdsmap.c | 12 +++--
fs/ceph/snap.c | 3 ++
fs/ceph/super.h | 4 +-
include/linux/ceph/ceph_features.h | 1 +
include/linux/ceph/decode.h | 2 +
include/linux/ceph/mon_client.h | 1 -
include/linux/iversion.h | 24 ++++++++++
net/ceph/Makefile | 2 +-
net/ceph/cls_lock_client.c | 7 ++-
net/ceph/decode.c | 75 ++++++++++++++++++++++++++++++
net/ceph/messenger.c | 5 +-
net/ceph/mon_client.c | 21 +++++----
net/ceph/osd_client.c | 20 +++++---
net/ceph/osdmap.c | 31 ++++++------
20 files changed, 232 insertions(+), 66 deletions(-)
create mode 100644 net/ceph/decode.c
--
2.21.0
Hi everyone,
We'd like to do some planning calls for octopus. Each call would be 30-60
minutes, and cover (at least) rados, rbd, rgw, and cephfs. The dashboard
team has a face to face meeting next week in Germany so they should be in
good shape. Sebastian, do we need to schedule something on the
orchestrator, or just rely on the existing Monday call?
1- Does the 1500-1700 UTC time range work well enough for everyone? We'll
record the calls, of course, and send an email summary after.
2- What day(s):
Tomorrow (Friday Jun 7)
Next week (Jun 10-14... may conflict with dashboard f2f)
The following week (Jun 17-21)
If notice isn't too short for tomorrow or Monday, it might be nice to have
some clarity for the dashboard folks going into their f2f as far as what
underlying work and new features are in the pipeline.
Maybe... RADOS and RBD tomorrow, CephFS and RGW Monday? Is that too much
of a stretch?
sage
Hi Folks,
Perf meeting is on in ~20 minutes! Today's agenda: CBT client
endpoints in Teuthology, Adam's sharded bluestore progression, and
hopefully updates on seastar/crimson work. See you there!
Etherpad:
https://pad.ceph.com/p/performance_weekly
Bluejeans:
https://bluejeans.com/908675367
Thanks,
Mark
We have several virtual xattrs in cephfs which return various values as
strings. xattrs don't necessarily return strings however, so we need to
include the terminating NULL byte when we return the length.
Furthermore, the getxattr manpage says that we should return -ERANGE if
the buffer is too small to hold the resulting value. Let's start doing
that here as well.
URL: https://bugzilla.redhat.com/show_bug.cgi?id=1717454
Reported-by: Tomas Petr <tpetr(a)redhat.com>
Signed-off-by: Jeff Layton <jlayton(a)kernel.org>
---
fs/ceph/xattr.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
index 6621d27e64f5..2a61e02e7166 100644
--- a/fs/ceph/xattr.c
+++ b/fs/ceph/xattr.c
@@ -803,8 +803,15 @@ ssize_t __ceph_getxattr(struct inode *inode, const char *name, void *value,
if (err)
return err;
err = -ENODATA;
- if (!(vxattr->exists_cb && !vxattr->exists_cb(ci)))
- err = vxattr->getxattr_cb(ci, value, size);
+ if (!(vxattr->exists_cb && !vxattr->exists_cb(ci))) {
+ /*
+ * getxattr_cb returns strlen(value), xattr length must
+ * include the NULL.
+ */
+ err = vxattr->getxattr_cb(ci, value, size) + 1;
+ if (size && size < err)
+ err = -ERANGE;
+ }
return err;
}
--
2.21.0
Hi, zheng and patrick.
During the last CDM, you mentioned that before doing rstat
propagation, client dirty caps should be forced to flush after taking
snapshots and before doing rstat propagation. Do you think that
forcing dirty caps flush should be enclosed in the rstat propagation
operation or be another stand-alone operation? Thanks:-)
Please add all PRs ready for nautilus v14.2.2 ASAP and tag with labels
"nautilus-batch-1" and "needs-qa".
The current plan is to start QE validation next week.
Thx
YuriW
We're glad to announce the sixth bugfix release of the Mimic v13.2.x
long term stable release series. We recommend that all Mimic users
upgrade. We thank everyone for contributing towards this release.
Notable Changes
---------------
* Ceph v13.2.6 now packages python bindings for python3.6 instead of
python3.4, because EPEL7 recently switched from python3.4 to
python3.6 as the native python3. See the announcement[1] _`
for more details on the background of this change.
For a detailed changelog, please refer to the official blog post entry
at https://ceph.com/releases/v13-2-6-mimic-released/
[1]: https://lists.fedoraproject.org/archives/list/epel-announce@lists.fedorapro…
Getting Ceph
* Git at git://github.com/ceph/ceph.git
* Tarball at http://download.ceph.com/tarballs/ceph-13.2.6.tar.gz
* For packages, see http://docs.ceph.com/docs/master/install/get-packages/
* Release git sha1: 7b695f835b03642f85998b2ae7b6dd093d9fbce4
--
Abhishek Lekshmanan
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton,
HRB 21284 (AG Nürnberg)