> I also don't know if any common use fs has an optimization whereby > just the modified sector(s) is overwritten, rather than all sectors > making up the file system block being modified.
Most of them do. The generic direct io path allows sector sized dio. The very first bit of do_blockdev_direct_IO() is testing first for file system block size alignment then for block device sector size alignment. You can see this easily with dd conv=notrunc oflags=direct and blktrace. # blockdev --getss /dev/sda 512 # blockdev --getbsz /dev/sda 4096 # blktrace -d /dev/sda -a issue -o - | blkparse -i - & $ dd if=/dev/zero of=file bs=4096 count=1 oflag=direct conv=notrunc 8,0 3 14 35.957320002 17941 D WS 137297704 + 8 [dd] $ dd if=/dev/zero of=file bs=512 count=1 oflag=direct conv=notrunc 8,0 1 4 31.405641362 17940 D WS 137297704 + 1 [dd] - z -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html