]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rados: For export/import add correctly fadvise flags. 4394/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Tue, 23 Jun 2015 06:13:54 +0000 (14:13 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Tue, 23 Jun 2015 06:13:54 +0000 (14:13 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/tools/rados/PoolDump.cc
src/tools/rados/RadosImport.cc

index efc274b6fa0efb2cb711b72feb89e7e1c30d37d5..fa230315e7ba6befe66dec9945e4b88e6374b12e 100644 (file)
@@ -153,6 +153,8 @@ int PoolDump::dump(IoCtx *io_ctx)
   }
 
   r = write_simple(TYPE_POOL_END, file_fd);
+  if (file_fd != STDOUT_FILENO)
+    posix_fadvise(file_fd, 0, 0, POSIX_FADV_DONTNEED);
 
   return r;
 }
index 9fe06c3577bb44a1daa0bea6e04f7c639e5866d7..32fee3811647bc3bbc268bb7e4a81e3f6553d48c 100644 (file)
@@ -110,6 +110,9 @@ int RadosImport::import(librados::IoCtx &io_ctx, bool no_overwrite)
   }
 #endif
 
+  if (file_fd != STDIN_FILENO)
+    posix_fadvise(file_fd, 0, 0, POSIX_FADV_SEQUENTIAL);
+
   bool done = false;
   bool found_metadata = false;
   while(!done) {
@@ -149,6 +152,8 @@ int RadosImport::import(librados::IoCtx &io_ctx, bool no_overwrite)
     cerr << "Missing metadata section!" << std::endl;
   }
 
+  if (file_fd != STDIN_FILENO)
+    posix_fadvise(file_fd, 0, 0, POSIX_FADV_DONTNEED);
   return 0;
 }