]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
journal: avoid queueing null context
authorSage Weil <sage@newdream.net>
Mon, 22 Sep 2008 18:21:44 +0000 (11:21 -0700)
committerSage Weil <sage@newdream.net>
Mon, 22 Sep 2008 21:38:08 +0000 (14:38 -0700)
src/os/FileJournal.cc

index a854ef88e77a78d3c3abf797f9c60797126c3784..3ddc660bb791d6d8f63b1543620bc91d73391b5b 100644 (file)
@@ -287,8 +287,10 @@ bool FileJournal::check_for_wrap(__u64 seq, off64_t *pos, off64_t size, bool can
   full_commit_seq = seq;
   full_restart_seq = seq+1;
   while (!writeq.empty()) {
-    writing_seq.push_back(writeq.front().seq);
-    writing_fin.push_back(writeq.front().fin);
+    if (writeq.front().fin) {
+      writing_seq.push_back(writeq.front().seq);
+      writing_fin.push_back(writeq.front().fin);
+    }
     writeq.pop_front();
   }  
   print_header();
@@ -534,8 +536,10 @@ void FileJournal::submit_entry(__u64 seq, bufferlist& e, Context *oncommit)
     // not journaling this.  restart writing no sooner than seq + 1.
     full_restart_seq = seq+1;
     dout(10) << " journal is/was full, will restart no sooner than seq " << full_restart_seq << dendl;
-    writing_seq.push_back(seq);
-    writing_fin.push_back(oncommit);
+    if (oncommit) {
+      writing_seq.push_back(seq);
+      writing_fin.push_back(oncommit);
+    }
   }
 }