]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
client: Ensure symlink plaintext is set
authorChristopher Hoffman <choffman@redhat.com>
Mon, 4 Mar 2024 19:43:58 +0000 (19:43 +0000)
committerChristopher Hoffman <choffman@redhat.com>
Wed, 5 Nov 2025 13:59:34 +0000 (13:59 +0000)
When creating symlink, ensure symlink_plain is set in fscrypt and
non-fscrypt cases.

Fixes: https://tracker.ceph.com/issues/64691
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
src/client/Client.cc

index 5084045ebfa7fa2c26dd25fcd7bbc3578d2a8733..e7df7fe3ebf90b7f48a3981743801eb693aff26d 100644 (file)
@@ -1811,13 +1811,17 @@ Inode* Client::insert_trace(MetaRequest *request, MetaSession *session)
     }
 
     auto fscrypt_denc = fscrypt->get_fname_denc(in->fscrypt_ctx, &in->fscrypt_key_validator, true);
-    if (fscrypt_denc && in->is_symlink()) {
-      string slname;
-      int ret = fscrypt_denc->get_decrypted_symlink(in->symlink, &slname);
-      if (ret < 0) {
-        ldout(cct, 0) << __FILE__ << ":" << __LINE__ << ": failed to decrypt symlink (r=" << ret << ")" << dendl;
+    if (in->is_symlink()) {
+      if (fscrypt_denc) {
+        string slname;
+        int ret = fscrypt_denc->get_decrypted_symlink(in->symlink, &slname);
+        if (ret < 0) {
+          ldout(cct, 0) << __FILE__ << ":" << __LINE__ << ": failed to decrypt symlink (r=" << ret << ")" << dendl;
+        }
+        in->symlink_plain = slname;
+      } else {
+        in->symlink_plain = in->symlink;
       }
-      in->symlink_plain = slname;
     }
   }