]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix error handling of posix_fadvise() syscall 10327/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Mon, 18 Jul 2016 10:07:30 +0000 (18:07 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Mon, 18 Jul 2016 10:07:30 +0000 (18:07 +0800)
According to Linux man page:
On success, zero is returned.  On error, an error number is returned.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/bluestore/KernelDevice.cc

index 8c1d061ee7d8586c8124ada13e9dc0faa2547bde..52fca98ab2b4050f9c46a43dc194e66bbca7a0bd 100644 (file)
@@ -91,8 +91,8 @@ int KernelDevice::open(string p)
   // disable readahead as it will wreak havoc on our mix of
   // directio/aio and buffered io.
   r = posix_fadvise(fd_buffered, 0, 0, POSIX_FADV_RANDOM);
-  if (r < 0) {
-    r = -errno;
+  if (r) {
+    r = -r;
     derr << __func__ << " open got: " << cpp_strerror(r) << dendl;
     goto out_fail;
   }
@@ -578,8 +578,8 @@ int KernelDevice::invalidate_cache(uint64_t off, uint64_t len)
   assert(off % block_size == 0);
   assert(len % block_size == 0);
   int r = posix_fadvise(fd_buffered, off, len, POSIX_FADV_DONTNEED);
-  if (r < 0) {
-    r = -errno;
+  if (r) {
+    r = -r;
     derr << __func__ << " 0x" << std::hex << off << "~" << len << std::dec
         << " error: " << cpp_strerror(r) << dendl;
   }