]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
libcephfs_proxy: workaround for delays and hangs in the proxy 62483/head
authorXavi Hernandez <xhernandez@gmail.com>
Tue, 25 Mar 2025 09:19:12 +0000 (10:19 +0100)
committerXavi Hernandez <xhernandez@gmail.com>
Tue, 25 Mar 2025 09:26:27 +0000 (10:26 +0100)
When ceph_ll_lookup() is done on ".", it returns a new reference to the
parent inode itself. However this may cause some delays or problems on
disconnect (see https://tracker.ceph.com/issues/70553).

However, if "." is replaced by "", we still get a new reference to the
parent inode (which is what we really need), without causing any side
effect.

This patch uses this alternative in the libcephfs proxy to avoid the
problem.

Signed-off-by: Xavi Hernandez <xhernandez@gmail.com>
src/libcephfs_proxy/proxy_mount.c

index abfef1232c27a7cbda73df987c13947f4bddae27..1943736e7f121184eb784b12400c2efb1c2e4936 100644 (file)
@@ -470,7 +470,7 @@ int32_t proxy_path_resolve(proxy_mount_t *mount, const char *path,
        }
 
        if (err >= 0) {
-               err = proxy_path_lookup(proxy_cmount(mount), iter.base, ".",
+               err = proxy_path_lookup(proxy_cmount(mount), iter.base, "",
                                        inode, stx, want, flags, iter.perms);
        }