From: Patrick Donnelly Date: Thu, 6 Aug 2020 21:04:57 +0000 (-0700) Subject: client: use non-static dirent for thread-safety X-Git-Tag: v14.2.11~4^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F36511%2Fhead;p=ceph.git client: use non-static dirent for thread-safety Fixes: https://tracker.ceph.com/issues/46832 Signed-off-by: Patrick Donnelly (cherry picked from commit 9b00083489d1d4777519da38f3003cf164dae480) --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 48e40e36a0d..77c35e564e5 100755 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -8380,7 +8380,7 @@ static int _readdir_single_dirent_cb(void *p, struct dirent *de, struct dirent *Client::readdir(dir_result_t *d) { int ret; - static struct dirent de; + auto& de = d->de; single_readdir sr; sr.de = &de; sr.stx = NULL; diff --git a/src/client/Client.h b/src/client/Client.h index 0747baab918..9c4f02c0447 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -222,6 +222,7 @@ struct dir_result_t { frag_t buffer_frag; vector buffer; + struct dirent de; }; class Client : public Dispatcher, public md_config_obs_t {