]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ebofs: fixed 0 length writes
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 19 Dec 2007 18:30:37 +0000 (18:30 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 19 Dec 2007 18:30:37 +0000 (18:30 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@2236 29311d96-e01e-0410-9327-a35deaab8ce9

trunk/ceph/config.cc
trunk/ceph/ebofs/Ebofs.cc

index 98c2ef70acc9736186b7e3ad9439924b0ca9db8d..798187bed79b73b6102a33f14f9395baeafce96a 100644 (file)
@@ -327,10 +327,10 @@ md_config_t g_conf = {
   ebofs_cloneable: false,
   ebofs_verify: false,
   ebofs_commit_ms:      1000,       // 0 = no forced commit timeout (for debugging/tracing)
-  ebofs_oc_size:        10,      // onode cache
-  ebofs_cc_size:        10,      // cnode cache
-  ebofs_bc_size:        (5 *256), // 4k blocks, *256 for MB
-  ebofs_bc_max_dirty:   (3 *256), // before write() will block
+  ebofs_oc_size:        10000,      // onode cache
+  ebofs_cc_size:        10000,      // cnode cache
+  ebofs_bc_size:        (50 *256), // 4k blocks, *256 for MB
+  ebofs_bc_max_dirty:   (30 *256), // before write() will block
   ebofs_max_prefetch: 1000, // 4k blocks
   ebofs_realloc: false,    // hrm, this can cause bad fragmentation, don't use!
   ebofs_verify_csum_on_read: true,
index fbcba0531c0de1396c71a30dd745087d45412cc8..4f8787e822be4e92201f16cac91c0e0d5d7a0b6d 100644 (file)
@@ -2827,7 +2827,10 @@ int Ebofs::_write(pobject_t oid, off_t offset, size_t length, const bufferlist&
     }
 
     // apply write to buffer cache
-    if (length > 0) {
+    if (length == 0) {
+      dirty_onode(on);
+      break;
+    } else {
       int r = apply_write(on, offset, length, bl);
       if (r == 0) 
        break; // yay!