Phil Frost writes:

> Unfortunately, I don't feel very qualified in this area, so can anyone
> tell me if I'm totally off base here? Any suggestions on how I might
> test this?

I don't know much about the kernel myself, but your post suggested a
fix.  I applied the patch below to linux-3.4.1 and this patch appears to
fix the problem.  Specifically, fsync() is too fast before the patch,
and it runs at non-drbd speed after the patch.

diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 211fc44..96e400b 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -3413,6 +3413,7 @@ struct drbd_conf *drbd_new_device(unsigned int minor)
        set_disk_ro(disk, true);
 
        disk->queue = q;
+       blk_queue_flush(disk->queue, REQ_FLUSH | REQ_FUA);
        disk->major = DRBD_MAJOR;
        disk->first_minor = minor;
        disk->fops = &drbd_ops;

_______________________________________________
drbd-user mailing list
drbd-user@lists.linbit.com
http://lists.linbit.com/mailman/listinfo/drbd-user

Reply via email to