]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os: add apply_transaction() variant that takes a sequencer
authorSage Weil <sage@inktank.com>
Fri, 18 Jan 2013 23:28:24 +0000 (15:28 -0800)
committerSage Weil <sage@inktank.com>
Wed, 23 Jan 2013 13:38:50 +0000 (05:38 -0800)
Also, move the convenience wrappers into the interface and funnel through
a single implementation.

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit f6c69c3f1ac35546b90315fff625993ba5cd8c07)

src/os/FileStore.cc
src/os/FileStore.h
src/os/ObjectStore.h

index 533bf0489785607fbf09b9f8d71df1aeacf3a18c..1dbbbb1e23a1c00e5a1f2486510e246afbb1b6fd 100644 (file)
@@ -2127,15 +2127,8 @@ int FileStore::do_transactions(list<Transaction*> &tls, uint64_t op_seq)
   return r;
 }
 
-unsigned FileStore::apply_transaction(Transaction &t,
-                                     Context *ondisk)
-{
-  list<Transaction*> tls;
-  tls.push_back(&t);
-  return apply_transactions(tls, ondisk);
-}
-
-unsigned FileStore::apply_transactions(list<Transaction*> &tls,
+unsigned FileStore::apply_transactions(Sequencer *osr,
+                                      list<Transaction*> &tls,
                                       Context *ondisk)
 {
   // use op pool
@@ -2146,7 +2139,7 @@ unsigned FileStore::apply_transactions(list<Transaction*> &tls,
   C_SafeCond *onreadable = new C_SafeCond(&my_lock, &my_cond, &done, &r);
   
   dout(10) << "apply queued" << dendl;
-  queue_transactions(NULL, tls, onreadable, ondisk);
+  queue_transactions(osr, tls, onreadable, ondisk);
   
   my_lock.Lock();
   while (!done)
index 0281e94d6341ec7ddc1997a5ea7b8f8df769c8f6..94b7c69b6874b1bd68c127583f846411d15f9410 100644 (file)
@@ -307,8 +307,8 @@ public:
   int statfs(struct statfs *buf);
 
   int do_transactions(list<Transaction*> &tls, uint64_t op_seq);
-  unsigned apply_transaction(Transaction& t, Context *ondisk=0);
-  unsigned apply_transactions(list<Transaction*>& tls, Context *ondisk=0);
+  unsigned apply_transactions(Sequencer *osr, list<Transaction*>& tls, Context *ondisk=0);
+
   unsigned _do_transaction(Transaction& t, uint64_t op_seq, int trans_num);
 
   int queue_transaction(Sequencer *osr, Transaction* t);
index a1cb21c0326ca9ec420ae6964a229fcdb5590aee..32e9360c5f0f2f719ca959a89971107cd7d40bab 100644 (file)
@@ -633,8 +633,20 @@ public:
     }
   };
 
-  virtual unsigned apply_transaction(Transaction& t, Context *ondisk=0) = 0;
-  virtual unsigned apply_transactions(list<Transaction*>& tls, Context *ondisk=0) = 0;
+  unsigned apply_transaction(Transaction& t, Context *ondisk=0) {
+    list<Transaction*> tls;
+    tls.push_back(&t);
+    return apply_transactions(NULL, tls, ondisk);
+  }
+  unsigned apply_transaction(Sequencer *osr, Transaction& t, Context *ondisk=0) {
+    list<Transaction*> tls;
+    tls.push_back(&t);
+    return apply_transactions(osr, tls, ondisk);
+  }
+  unsigned apply_transactions(list<Transaction*>& tls, Context *ondisk=0) {
+    return apply_transactions(NULL, tls, ondisk);
+  }
+  virtual unsigned apply_transactions(Sequencer *osr, list<Transaction*>& tls, Context *ondisk=0) = 0;
 
   virtual int queue_transaction(Sequencer *osr, Transaction* t) = 0;
   virtual int queue_transaction(Sequencer *osr, Transaction *t, Context *onreadable, Context *ondisk=0,