From a36f5ed185cbcd788e36ad22a00cfe9dcdfdfe7f Mon Sep 17 00:00:00 2001 From: Jos Collin Date: Wed, 18 Oct 2023 18:29:06 +0530 Subject: [PATCH] client: call _getattr() for -ENODATA returned _getvxattr() calls _getvxattr rpc doesn't handle ceph.mirror.* attributes and always returns -ENODATA for ceph.mirror.* attributes. This prevents incremental syncing of snapshots. So let them call _getattr() and proceed. Fixes: https://tracker.ceph.com/issues/63099 Signed-off-by: Jos Collin --- src/client/Client.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 7d223018c762..9fb806b95840 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -13716,7 +13716,9 @@ int Client::_getxattr(Inode *in, const char *name, void *value, size_t size, if (!strncmp(name, "ceph.", 5)) { r = _getvxattr(in, perms, name, size, value, MDS_RANK_NONE); - goto out; + if (r != -ENODATA) { + goto out; + } } if (acl_type == NO_ACL && !strncmp(name, "system.", 7)) { -- 2.47.3