From: Christopher Hoffman Date: Mon, 4 Mar 2024 19:43:58 +0000 (+0000) Subject: client: Ensure symlink plaintext is set X-Git-Tag: testing/wip-vshankar-testing-20260120.085915-debug^2~13^2~121 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=92b3a8a2cee3de459ab0338fd6a7702a8bf6c39c;p=ceph-ci.git client: Ensure symlink plaintext is set 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 --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 5084045ebfa..e7df7fe3ebf 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -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; } }