Excerpts from Chris Mason's message of 2010-11-21 22:18:54 -0500: > Great, I'll test this and the others overnight. Thanks! > > -chris > > Excerpts from Miao Xie's message of 2010-11-21 22:04:43 -0500: > > V1->V2 Changes: > > change the fix method. we split bios in btrfs_submit_direct() to fix this > > problem now. > > > > btrfs paniced when we write >64KB data by direct IO at one time. > > > > Reproduce steps: > > # mkfs.btrfs /dev/sda5 /dev/sda6 > > # mount /dev/sda5 /mnt > > # dd if=/dev/zero of=/mnt/tmpfile bs=100K count=1 oflag=direct Thanks again for coding this up, the implementation looks good to me. This easily passed the basic tests, but I ran into trouble when I tried using it to server my virtual machines. The problem is that we create ordered extents in the DIO get_blocks call, but the generic DIO code may create a single bio to span more than one ordered extent by merging adjacent ranges. I've fixed it here by walking forward through the ordered extents in the end_io processing. I've pushed these changes out to the next-rc branch of the btrfs unstable tree, and the last commit is here: Could you please take a look and verify it still works with your tests? http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-unstable.git;a=commit;h=163cf09c2a0ee5cac6285f9347975bd1e97725da -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
