]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
*** empty log message ***
authorsage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 14 Dec 2005 05:38:19 +0000 (05:38 +0000)
committersage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 14 Dec 2005 05:38:19 +0000 (05:38 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@522 29311d96-e01e-0410-9327-a35deaab8ce9

ceph/ebofs/BufferCache.cc
ceph/ebofs/mkfs.ebofs.cc

index 550a4e6f34ff9f1ce458c06dbe373432ce8eedf6..477007bebd7c003d901cc0c80b12e87ab608c6d1 100644 (file)
@@ -463,7 +463,7 @@ int ObjectCache::scan_versions(block_t start, block_t len,
 
   for (p++; p != data.end(); p++) {
        // past?
-       if (p->first < start+len) break;
+       if (p->first >= start+len) break;
        
        const version_t v = p->second->get_version();
        if (low > v) low = v;
@@ -514,6 +514,10 @@ BufferHead *BufferCache::split(BufferHead *orig, block_t after)
 
   // FIXME: waiters?
   
+  dout(20) << "split    left is " << *orig << endl;
+  dout(20) << "split   right is " << *right << endl;
+
+
   return right;
 }
 
@@ -549,8 +553,7 @@ void BufferCache::bh_read(Onode *on, BufferHead *bh)
 
 bool BufferCache::bh_cancel_read(BufferHead *bh)
 {
-  assert(bh->rx_ioh);
-  if (dev.cancel_io(bh->rx_ioh) >= 0) {
+  if (bh->rx_ioh && dev.cancel_io(bh->rx_ioh) >= 0) {
        dout(10) << "bh_cancel_read on " << *bh << endl;
        bh->rx_ioh = 0;
        mark_missing(bh);
@@ -589,8 +592,7 @@ void BufferCache::bh_write(Onode *on, BufferHead *bh)
 
 bool BufferCache::bh_cancel_write(BufferHead *bh)
 {
-  assert(bh->tx_ioh);
-  if (dev.cancel_io(bh->tx_ioh) >= 0) {
+  if (bh->tx_ioh && dev.cancel_io(bh->tx_ioh) >= 0) {
        dout(10) << "bh_cancel_write on " << *bh << endl;
        bh->tx_ioh = 0;
        mark_dirty(bh);
index fdb891e131161e906d52052b9acfb8dc8f27a13d..b361348013b91d1532a3a20db32bdb12c45e1bf6 100644 (file)
@@ -56,18 +56,18 @@ int main(int argc, char **argv)
          srand(0);
          for (int i=0; i<100; i++) {
                off_t off = rand() % 1000000;
-               size_t len = 100;
+               size_t len = rand() % 10000;
                cout << endl << "writing bit at " << off << " len " << len << endl;
                fs.write(10, len, off, bl, (Context*)0);
          }
          
-         if (0) {
+         if (1) {
                // read
                srand(0);
                for (int i=0; i<100; i++) {
                  bufferlist bl;
                  off_t off = rand() % 1000000;
-                 size_t len = 100;
+                 size_t len = rand() % 1000;
                  cout << endl << "read bit at " << off << " len " << len << endl;
                  int r = fs.read(10, len, off, bl);
                  assert(bl.length() == len);
@@ -80,7 +80,7 @@ int main(int argc, char **argv)
          fs.trim_buffer_cache();
          //fs.trim_buffer_cache();
          
-         if (0) {
+         if (1) {
                // read again
                srand(0);
                for (int i=0; i<100; i++) {