Chris Mason wrote: > Well, apparently I get get the silly stuff wrong an infinite number of > times. Sorry, lets try again: > > diff -r 38b36aaaa731 disk-io.c > --- a/disk-io.c Fri Jun 15 13:50:20 2007 -0400 > +++ b/disk-io.c Fri Jun 15 16:52:38 2007 -0400 > @@ -541,6 +541,8 @@ int write_ctree_super(struct btrfs_trans > else > ret = submit_bh(WRITE, bh); > if (ret == -EOPNOTSUPP) { > + get_bh(bh); > + lock_buffer(bh); > set_buffer_uptodate(bh); > root->fs_info->do_barriers = 0; > ret = submit_bh(WRITE, bh); > ha! it is working now. some numbers from here(with the fio-tool): 1. sequential read 2. random writes 3. sequential read again filesize:300MB, bs:4K btrfs reiserfs ext3 usr% sys% bw sec. usr% sys% bw sec. usr% sys% bw sec. 1 5 51 68.3 4.6 1 17 67.4 4.6 5 24 68.0 4.6 2 0 1 0.7 431 2 21 29.8 10.5 3 18 29.0 10.8 3 0 1 2.3 133 1 19 70.5 4.4 5 24 68.6 4.5 bw: MB/sec. ext3: -o data=writeback,barrier=1 20GB LVM2 partition on a RAID6 (4 SATA-disks) cheers, florian - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html