]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: call _getattr() for -ENODATA returned _getvxattr() calls
authorJos Collin <jcollin@redhat.com>
Wed, 18 Oct 2023 12:59:06 +0000 (18:29 +0530)
committerJos Collin <jcollin@redhat.com>
Mon, 30 Oct 2023 04:49:20 +0000 (10:19 +0530)
_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 <jcollin@redhat.com>
src/client/Client.cc

index 7d223018c76218cac2d8c4662849cbd42757bada..9fb806b95840264b15f068fdf4f831c2a9d187d8 100644 (file)
@@ -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)) {