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: v16.1.0~1496^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F36503%2Fhead;p=ceph.git client: use non-static dirent for thread-safety Fixes: https://tracker.ceph.com/issues/46832 Signed-off-by: Patrick Donnelly --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 8a2db4855260..7dccc705a9d1 100755 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -8512,7 +8512,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 f1057e8465d3..78266feb70c2 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 {