From: Kefu Chai Date: Mon, 12 Sep 2016 03:56:09 +0000 (+0800) Subject: ceph_mon: use readdir() as readdir_r() is deprecated X-Git-Tag: v11.0.1~260^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=99b799630a456e8650cae27f994ad7060748fdb2;p=ceph.git ceph_mon: use readdir() as readdir_r() is deprecated see https://lwn.net/Articles/696469/, readdir_r() is deprecated by glibc since 2.24. so let's use readdir() instead. Signed-off-by: Kefu Chai --- diff --git a/src/ceph_mon.cc b/src/ceph_mon.cc index 68b6e371e694..5755827f3ad1 100644 --- a/src/ceph_mon.cc +++ b/src/ceph_mon.cc @@ -137,25 +137,20 @@ int check_mon_data_empty() cerr << "opendir(" << mon_data << ") " << cpp_strerror(errno) << std::endl; return -errno; } - char buf[offsetof(struct dirent, d_name) + PATH_MAX + 1]; - int code = 0; - struct dirent *de; + struct dirent *de = nullptr; errno = 0; - while (!::readdir_r(dir, reinterpret_cast(buf), &de)) { - if (!de) { - if (errno) { - cerr << "readdir(" << mon_data << ") " << cpp_strerror(errno) << std::endl; - code = -errno; - } - break; - } + while ((de = ::readdir(dir))) { if (string(".") != de->d_name && string("..") != de->d_name) { code = -ENOTEMPTY; break; } } + if (!de && errno) { + cerr << "readdir(" << mon_data << ") " << cpp_strerror(errno) << std::endl; + code = -errno; + } ::closedir(dir);