]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/blkdev: use readdir() as readdir_r() is deprecated
authorKefu Chai <kchai@redhat.com>
Mon, 7 Nov 2016 05:54:36 +0000 (13:54 +0800)
committerKefu Chai <kchai@redhat.com>
Mon, 7 Nov 2016 06:19:44 +0000 (14:19 +0800)
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 <kchai@redhat.com>
src/common/blkdev.cc

index 6df48656f840a6dc544234eeaee15e9e4f88e960..90d6c3f923ca10cc6fcd67e3d84871409c3433b7 100644 (file)
@@ -64,8 +64,6 @@ int get_block_device_base(const char *dev, char *out, size_t out_len)
 {
   struct stat st;
   int r = 0;
-  char buf[PATH_MAX*2];
-  struct dirent *de;
   DIR *dir;
   char devname[PATH_MAX], fn[PATH_MAX];
   char *p;
@@ -100,14 +98,8 @@ int get_block_device_base(const char *dev, char *out, size_t out_len)
   if (!dir)
     return -errno;
 
-  while (!::readdir_r(dir, reinterpret_cast<struct dirent*>(buf), &de)) {
-    if (!de) {
-      if (errno) {
-       r = -errno;
-       goto out;
-      }
-      break;
-    }
+  struct dirent *de = nullptr;
+  while ((de = ::readdir(dir))) {
     if (de->d_name[0] == '.')
       continue;
     snprintf(fn, sizeof(fn), "%s/sys/block/%s/%s", sandbox_dir, de->d_name,