]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
FileJournal: check pwrite return value when zeroing journal
authorSamuel Just <samuel.just@dreamhost.com>
Fri, 30 Mar 2012 16:59:24 +0000 (09:59 -0700)
committerSamuel Just <samuel.just@dreamhost.com>
Fri, 30 Mar 2012 16:59:24 +0000 (09:59 -0700)
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
src/os/FileJournal.cc

index 1140794693e90a84c994c35139598b5b2f718c2b..530e1647ddf05267b78eb1aa1514ff9a4bdbb5fc 100644 (file)
@@ -340,10 +340,16 @@ int FileJournal::_open_file(int64_t oldsize, blksize_t blksize,
     char *buf = new char[write_size];
     memset(static_cast<void*>(buf), 0, write_size);
     uint64_t i = 0;
-    for (; (i + write_size) <= (unsigned)max_size; i += write_size)
-      ::pwrite(fd, static_cast<void*>(buf), write_size, i);
-    if (i < (unsigned)max_size)
-      ::pwrite(fd, static_cast<void*>(buf), max_size - i, i);
+    for (; (i + write_size) <= (unsigned)max_size; i += write_size) {
+      ret = ::pwrite(fd, static_cast<void*>(buf), write_size, i);
+      if (ret < 0)
+       return -errno;
+    }
+    if (i < (unsigned)max_size) {
+      ret = ::pwrite(fd, static_cast<void*>(buf), max_size - i, i);
+      if (ret < 0)
+       return -errno;
+    }
     delete [] buf;
   }