• J
    Btrfs: wait ordered range before doing direct io · 0e267c44
    Josef Bacik 提交于
    My recent truncate patch uncovered this bug, but I can reproduce it without the
    truncate patch.  If you mount with -o compress-force, do a direct write to some
    area, do a buffered write to some other area, and then do a direct read you will
    get the wrong data for where you did the buffered write.  This is because the
    generic direct io helpers only call filemap_write_and_wait once, and for
    compression we need it twice.  So to be safe add the btrfs_wait_ordered_range to
    the start of the direct io function to make sure any compressed writes have
    truly been written.  This patch makes xfstests 130 pass when you mount with -o
    compress-force=lzo.  Thanks,
    Signed-off-by: NJosef Bacik <jbacik@fusionio.com>
    0e267c44
inode.c 230.8 KB