]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
FileJournal: fix return code of create method 6988/head
authorxiexingguo <258156334@qq.com>
Sun, 20 Dec 2015 13:41:46 +0000 (21:41 +0800)
committerxiexingguo <258156334@qq.com>
Sun, 20 Dec 2015 13:41:46 +0000 (21:41 +0800)
Shall return negative error code instead.

Fixes: #14134
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/FileJournal.cc

index 67454c2a6da531eb5068dece1975766902d0a242..698f2b31c079107481d79062a69d32cb13907a23 100644 (file)
@@ -389,7 +389,7 @@ int FileJournal::create()
 
   bp = prepare_header();
   if (TEMP_FAILURE_RETRY(::pwrite(fd, bp.c_str(), bp.length(), 0)) < 0) {
-    ret = errno;
+    ret = -errno;
     derr << "FileJournal::create : create write header error "
          << cpp_strerror(ret) << dendl;
     goto close_fd;
@@ -398,13 +398,14 @@ int FileJournal::create()
   // zero first little bit, too.
   ret = posix_memalign(&buf, block_size, block_size);
   if (ret) {
+    ret = -ret;
     derr << "FileJournal::create: failed to allocate " << block_size
         << " bytes of memory: " << cpp_strerror(ret) << dendl;
     goto close_fd;
   }
   memset(buf, 0, block_size);
   if (TEMP_FAILURE_RETRY(::pwrite(fd, buf, block_size, get_top())) < 0) {
-    ret = errno;
+    ret = -errno;
     derr << "FileJournal::create: error zeroing first " << block_size
         << " bytes " << cpp_strerror(ret) << dendl;
     goto free_buf;
@@ -427,10 +428,9 @@ free_buf:
   buf = 0;
 close_fd:
   if (TEMP_FAILURE_RETRY(::close(fd)) < 0) {
-    ret = errno;
+    ret = -errno;
     derr << "FileJournal::create: error closing fd: " << cpp_strerror(ret)
         << dendl;
-    goto done;
   }
 done:
   fd = -1;